)]}'
{
  "log": [
    {
      "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": "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": "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"
    },
    {
      "commit": "33758ef8c98efb669c65eb9404b99ee5df09c6b5",
      "tree": "624741f3a013a08100e5b6c0b3e7b9c6e5fc838c",
      "parents": [
        "a4747d536e905c3c34ab0d3c1c9c7485d6fac689"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 02 18:37:59 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 02 18:37:59 2011 -0800"
      },
      "message": "LayoutLib: Fix some rendering issues\n\nChange-Id: I662a39a783de5bc7f3063f46cedaab11c7e6496e\n"
    },
    {
      "commit": "ca2f84c8fc9135b6031de3c01b7f657a80223ceb",
      "tree": "261acec0c6b4a7eb520eda7b234814cee4ec7b21",
      "parents": [
        "3d3621f08b02ae559036c7d085c02276ae0a24d9",
        "a4747d536e905c3c34ab0d3c1c9c7485d6fac689"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 02 15:52:18 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 02 15:52:18 2011 -0800"
      },
      "message": "am a4747d53: Merge \"Make TimePicker/DatePicker/CalendarView render in Eclipse.\" into honeycomb\n\n* commit \u0027a4747d536e905c3c34ab0d3c1c9c7485d6fac689\u0027:\n  Make TimePicker/DatePicker/CalendarView render in Eclipse.\n"
    },
    {
      "commit": "345f866bfd09476fd62aa10345a0670cc110b63c",
      "tree": "18010b88cd0efbbc1799378b1f78ddbb02e06583",
      "parents": [
        "1bf518d8b333768e26bacf340f88f7d4ba8b9a91"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 02 11:50:34 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 02 14:04:50 2011 -0800"
      },
      "message": "Make TimePicker/DatePicker/CalendarView render in Eclipse.\n\nChange-Id: Id5313a6f0f53bf45f6eaabc0e10fcf0660eeac08\n"
    },
    {
      "commit": "60e1eb4bfa6205cb2b307f9d2e9858f6e8cbb7ca",
      "tree": "980fc56fdb90724fa1949eee339b96088415e88e",
      "parents": [
        "c15d7f63f047149e3fee0f2fc57539fb32856260",
        "03245a8ec46acc7c2b24d3d680ea5b88bd89ce13"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Mon Jan 31 14:32:56 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 31 14:32:56 2011 -0800"
      },
      "message": "am 03245a8e: Merge \"LayoutLib.Create: support Outer_Inner_Delegate renaming.\" into honeycomb\n\n* commit \u002703245a8ec46acc7c2b24d3d680ea5b88bd89ce13\u0027:\n  LayoutLib.Create: support Outer_Inner_Delegate renaming.\n"
    },
    {
      "commit": "811820f440b24db200e66874d42331023b7cd389",
      "tree": "474c8f6c1d1f5df3a593c8cebe4bfd8c4dbf9258",
      "parents": [
        "c1eb127f4e19c1f86e4b18c2c1daebe2404eeb93"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Thu Jan 27 16:48:27 2011 -0800"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Mon Jan 31 13:16:04 2011 -0800"
      },
      "message": "LayoutLib.Create: support Outer_Inner_Delegate renaming.\n\nWhen generating delegates, LayoutLib.Create support renaming\ninner classes. Only one level of inner class is supported.\n\nThe method Outer$Inner#get(...) generates a call to:\n  static Outer_Inner_Delegate#get(Outer instance, Outer$Inner instance, ...)\n\nChange-Id: Ie70f2b8e5e5f311ed9c7f26b7f64637ae6157a51\n"
    },
    {
      "commit": "371de9695508073fbbde8181eb230e99cb045206",
      "tree": "8b725299fe6b9638dad8cc3dc538a23ae86377ac",
      "parents": [
        "bda99568d84530c6442af0602e9c12e6cb897780",
        "a1f5e82f37c77af7b1d630b5bca715d1742f1234"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Sat Jan 29 23:07:48 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jan 29 23:07:48 2011 -0800"
      },
      "message": "am a1f5e82f: am a30063d8: am 25eb0464: Merge \"Normalize output from aapt d\"\n\n* commit \u0027a1f5e82f37c77af7b1d630b5bca715d1742f1234\u0027:\n  Normalize output from aapt d\n"
    },
    {
      "commit": "a1f5e82f37c77af7b1d630b5bca715d1742f1234",
      "tree": "c7b1d7c8c18f5d74370558cbcf48ca6747661096",
      "parents": [
        "71bb59f9e6799083830077dbb7e0f1effdd3faf7",
        "a30063d80c08434ac3c7316f338c6d54110449ab"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Sat Jan 29 23:04:50 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jan 29 23:04:50 2011 -0800"
      },
      "message": "am a30063d8: am 25eb0464: Merge \"Normalize output from aapt d\"\n\n* commit \u0027a30063d80c08434ac3c7316f338c6d54110449ab\u0027:\n  Normalize output from aapt d\n"
    },
    {
      "commit": "25eb04642cb5a72f59a274bbfc92f4f65c6c343e",
      "tree": "6c59e04e7d9b961b49fccdfb139fe87baaa35855",
      "parents": [
        "bbb5a5ce1922a168335811b177cd7341350c15cc",
        "9872bf4a2d4ae1e7ded170c8e74d400fe6be9bfb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Sat Jan 29 22:53:20 2011 -0800"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Sat Jan 29 22:53:20 2011 -0800"
      },
      "message": "Merge \"Normalize output from aapt d\""
    },
    {
      "commit": "13cd966415a5cf83934868751f19bf69fa4ff9df",
      "tree": "e1d42d363911ff0b818a97b092d4d405e5107bce",
      "parents": [
        "66700397496fc6f6d26f9f0b56ead8ef610b9654",
        "e802b59280540ce24ea1db61907a0f1f22f01fad"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Sat Jan 29 15:08:07 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jan 29 15:08:07 2011 -0800"
      },
      "message": "am e802b592: am 2107757d: am bbb5a5ce: Merge \"Make AaptGroupEntry::getMncName accept mnc00\"\n\n* commit \u0027e802b59280540ce24ea1db61907a0f1f22f01fad\u0027:\n  Make AaptGroupEntry::getMncName accept mnc00\n"
    },
    {
      "commit": "e802b59280540ce24ea1db61907a0f1f22f01fad",
      "tree": "cb686057d1c1136b9a763a2191321219fad6ffa2",
      "parents": [
        "3100207be5cb0ef93a5271f24b6f03a2e75291ad",
        "2107757dde0b3159119edcc9084fcb9a87985e88"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Sat Jan 29 15:05:30 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jan 29 15:05:30 2011 -0800"
      },
      "message": "am 2107757d: am bbb5a5ce: Merge \"Make AaptGroupEntry::getMncName accept mnc00\"\n\n* commit \u00272107757dde0b3159119edcc9084fcb9a87985e88\u0027:\n  Make AaptGroupEntry::getMncName accept mnc00\n"
    },
    {
      "commit": "bbb5a5ce1922a168335811b177cd7341350c15cc",
      "tree": "abfdcd3321ec33081bf63095812cf42c7ec0319e",
      "parents": [
        "9720323a5138acafbe30da38d61eeac469b675a4",
        "5ef0b9d72451d4bb65f5a76a05738041ed15664a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Sat Jan 29 14:38:48 2011 -0800"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Sat Jan 29 14:38:48 2011 -0800"
      },
      "message": "Merge \"Make AaptGroupEntry::getMncName accept mnc00\""
    },
    {
      "commit": "b353495192ba1acce94b8ab8aeeffe3c9a3bcfac",
      "tree": "122047ba0a782b87812f9ba6a97cabd7b9749fbc",
      "parents": [
        "0982dc6488a921d9d54d23b9180a9acf33c61526"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 28 12:46:12 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 28 16:54:15 2011 -0800"
      },
      "message": "LayoutLib: update with Pair API.\n\nChange-Id: Iba945153f7544872ea84e3311584223aea740e2e\n"
    },
    {
      "commit": "35ea7cd4c0c89122fda0b57af20061645082ffb9",
      "tree": "2b63b680fe7cf913dfb0ea67f9f3cda5a80cd080",
      "parents": [
        "270cbcc16a72f982d84afeb5e3fd3f166936394a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 28 11:44:21 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 28 11:44:21 2011 -0800"
      },
      "message": "LayoutLib: Update with the new resource map APIs.\n\nChange-Id: I30d83c2bb4569513f4f5e22670cffe938706f105\n"
    },
    {
      "commit": "16584225125acba18b74920b902c798dfead0328",
      "tree": "245cfd24438182060d147d827bbd3db76b688361",
      "parents": [
        "64a2c359aeda59e4bc43d48f31ade919e918ea26"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 27 15:30:39 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 27 15:41:38 2011 -0800"
      },
      "message": "LayoutLib: Properly compute available space to layouts.\n\nAlso display placeholders for status/title/action bars depending\non if the app is a tablet and its theme.\n\nChange-Id: I651c1a2e5cfde165e004c11b236e6df056853dec\n"
    },
    {
      "commit": "31fd1cf7697ef777b41c7a6a20e37ff5d573d732",
      "tree": "a845729a8f3a5ee7884e1c82c3a643738d98d7ab",
      "parents": [
        "5a82d8c58bf91c357c37a82b9f5e5c26f676d847"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 26 17:30:59 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 26 17:30:59 2011 -0800"
      },
      "message": "LayoutLib: put a default image on the quickcontactbadge.\n\nChange-Id: I64b3f4004801ec03f374460384f9a492e66bfaf0\n"
    },
    {
      "commit": "5a82d8c58bf91c357c37a82b9f5e5c26f676d847",
      "tree": "34486ebd0aabece45c26801fe11600cd9934dfcd",
      "parents": [
        "f6926a63dfdc114789a6acc06396ca826eb64418"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 26 16:33:07 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 26 16:34:53 2011 -0800"
      },
      "message": "LayoutLib: properly erase the bitmap when rendering a new session.\n\nThis fix the issue where going from a full theme to a dialog theme\nwould show the dialog on top of the previous rendering.\n\nChange-Id: Ib52b9719f44b04969423547b9de8d039f90b6f46\n"
    },
    {
      "commit": "7d7016e72431ad7ee595d857a19231c69efeb6de",
      "tree": "3acf19d320c2035ac1cc5bcf0efe126f03a72f3c",
      "parents": [
        "315fae2028d4ef73c9ba094a71152e6e853e2690"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 25 15:55:16 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 25 15:55:16 2011 -0800"
      },
      "message": "LayoutLib: return ViewInfo for all merged items + Build init.\n\nandroid.os.Build is now initialized from the build properties\nparsed from the SDK build.prop file.\n\nChange-Id: If16953215ca90fb0beacb51bf405b89a5c8a34fa\n"
    },
    {
      "commit": "aaa55d3f45744814907d0809befb49281ced462e",
      "tree": "410c86db7d969db7fb45cdcea77d351117a4ba12",
      "parents": [
        "33322052edd6c77b4378e69b66f746f241a80764",
        "4519f07e9c6b993fbe7a3d3df24d71d9450a54f1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jan 24 15:31:22 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 24 15:31:22 2011 -0800"
      },
      "message": "Merge \"New orientation listener.\" into honeycomb"
    },
    {
      "commit": "82b9232565bfececdb643a94cecdd1bd1cb5c643",
      "tree": "966746b27fd9d02ec000db9fc7be2c75628224be",
      "parents": [
        "67005b05cc76a38a5b3bf6e83957dd03619e9126"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 24 14:03:21 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 24 14:14:53 2011 -0800"
      },
      "message": "LayoutLib: Use special view cookie for include-merge case.\n\nAll items directly under the \u003cmerge\u003e tag now return the view cookie\nof the referencing \u003cinclude\u003e tag using a special class for\neasy differentiation in the calling client.\n\nChange-Id: I7a2a4e642be9564f47e256fd1586012497d34792\n"
    },
    {
      "commit": "4519f07e9c6b993fbe7a3d3df24d71d9450a54f1",
      "tree": "3c642e9c740a54941ab46d80ebc5668ce9ab4cc3",
      "parents": [
        "a6ce081970a78233ba6b9792149ee5f1390cba7b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jan 23 13:16:01 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jan 24 13:46:57 2011 -0800"
      },
      "message": "New orientation listener.\n\nThe objective in this listener is to be more careful about the\nsignal processing to prevent spurious orientation changes\nand to make all of the tweakable factors physically meaningful.\n\nThe calibration is defined in terms of time constants and\ndoes not assume a particular discrete sampling rate.  This is\nuseful because it allows us to change the accelerometer sampling\ninterval if desired without having to change the calibration.\nMoreover, the accelerometer sampling interval can vary +/- 20ms\nfrom one sample to the next even in normal circumstances.\n\nProposed orientation changes are weighted by confidence factors\nthat vary exponentially in relation to how close the device\nis to the ideal orientation change posture (screen is vertical,\nangle is exactly at the midpoint of the orientation quadrant,\nand no external acceleration beside gravity).  When not in an ideal\nposture, the device takes proportionally longer to settle into a\nnew orientation state.\n\nAdded a little tool to plot the log output of the\nWindowOrientationListener.  Check the README for more information\nabout how to use it.\n\nChange-Id: I787f02d03582ff26367df65eda8d9ce85c5cb343\n"
    },
    {
      "commit": "4c541b1303b0ee2b9b0d19bee85d3780c5c4c110",
      "tree": "74f17a86f6b48fa5b0fa579b206611b6512d161e",
      "parents": [
        "2bed570bba183249c6ca9ca1151d1d23808de8c1",
        "664644d9e012aa2a28ac96f305b1ce6499ec8806"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sun Jan 23 19:26:13 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jan 23 19:26:13 2011 -0800"
      },
      "message": "Merge \"visibility (\"lights out\") API.\" into honeycomb"
    },
    {
      "commit": "664644d9e012aa2a28ac96f305b1ce6499ec8806",
      "tree": "d8db43b09de516fefd82adf4fc4ec22417dda648",
      "parents": [
        "fac86056b285bf59c1c3e774f1cb9f6de0be59ba"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sun Jan 23 17:53:23 2011 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sun Jan 23 19:22:52 2011 -0800"
      },
      "message": "visibility (\"lights out\") API.\n\n1. Views may setSystemUiVisibility() to recommend that\nthe system chrome (status bar or other UI) show or hide\nitself.  (This functionality was previously available only\nvia the FLAG_FULLSCREEN window flag for some SystemUI\nimplementations.)\n\n2. Views may register a OnSystemUiVisibilityChangedListener\non a view, and find out when the system UI actually\nappears or disappears, allowing apps to coordinate the\nappearance of their own UI if desired.\n\nBug: 3241144\nChange-Id: Ia1758d94099182d49a1e3688ea2738ae4995b829\n"
    },
    {
      "commit": "02feeb4b2bb6515491cf3dd7ae2b204caac81bae",
      "tree": "a9da1ef9057f38d262425ba2a8b83164c25d156b",
      "parents": [
        "9d97b63d0e0c7c9deb2d140c1dd579b51f52c1af"
      ],
      "author": {
        "name": "Josh Stone",
        "email": "cuviper@gmail.com",
        "time": "Mon Jan 17 18:34:11 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jan 23 16:00:36 2011 -0800"
      },
      "message": "aapt: Allow raw \"%\" in unformatted string-arrays\n\nCommit 15fe2cb added format checking for translatable strings, enforcing\nthe use of positional args.  This check can be disabled on \u003cstring\u003e\nvalues with translatable\u003d\"false\" or formatted\u003d\"false\".  But they didn\u0027t\ncheck for those attributes on \u003cstring-array\u003e, so some of CM\u0027s strings\nfail when they\u0027re not really format strings, just because they contain\npercent signs.  (e.g. brightness widget\u0027s \"Auto/Dim/40%/100%\")\n\nSo now the formatted/translatable attributes are checked in string-array\ntoo, and we can restore our proper percent signs.\n\nChange-Id: I3478ab7e0b939e61fe0cec20201ac55096264080\n"
    },
    {
      "commit": "1240719ae06855d38f1fa159dd73e2109bb9586f",
      "tree": "375da085a3b6c07491c0e5b4b2cec9347bcd5b7c",
      "parents": [
        "c3563eb9e75e0b9ae130ec22d5c6c6b1561d783b",
        "bcf2adeb10c41becec3baa2bcb8de9212272399a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Sun Jan 23 12:57:33 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jan 23 12:57:33 2011 -0800"
      },
      "message": "am bcf2adeb: Merge \"aapt: Allow raw \"%\" in unformatted string-arrays\"\n\n* commit \u0027bcf2adeb10c41becec3baa2bcb8de9212272399a\u0027:\n  aapt: Allow raw \"%\" in unformatted string-arrays\n"
    },
    {
      "commit": "bf50322a245c430f3b3a1e7ecc299fe0a939daec",
      "tree": "ca114f9d2be8f42e406f404fbcc2eea25c57e16c",
      "parents": [
        "35f4d32dc2f0c383323e780ecc7e2764704c5d2c"
      ],
      "author": {
        "name": "Josh Stone",
        "email": "cuviper@gmail.com",
        "time": "Mon Jan 17 18:34:11 2011 -0800"
      },
      "committer": {
        "name": "Josh Stone",
        "email": "cuviper@gmail.com",
        "time": "Sat Jan 22 21:13:12 2011 -0800"
      },
      "message": "aapt: Allow raw \"%\" in unformatted string-arrays\n\nCommit 15fe2cb added format checking for translatable strings, enforcing\nthe use of positional args.  This check can be disabled on \u003cstring\u003e\nvalues with translatable\u003d\"false\" or formatted\u003d\"false\".  But they didn\u0027t\ncheck for those attributes on \u003cstring-array\u003e, so some of CM\u0027s strings\nfail when they\u0027re not really format strings, just because they contain\npercent signs.  (e.g. brightness widget\u0027s \"Auto/Dim/40%/100%\")\n\nSo now the formatted/translatable attributes are checked in string-array\ntoo, and we can restore our proper percent signs.\n\nChange-Id: I3478ab7e0b939e61fe0cec20201ac55096264080\n"
    },
    {
      "commit": "8068618ebed021c445db0919843cdb6b9b9e35b5",
      "tree": "8673dab9f76e20405a50fbbcfa0834258ca3d947",
      "parents": [
        "7633540cf0d1cfa1f893dc827cddaca3ea272af7"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Fri Jan 21 17:12:43 2011 -0800"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Fri Jan 21 17:25:55 2011 -0800"
      },
      "message": "Update preloaded-classes for Honeycomb.\n\nWe preload classes for two reasons. Classes that are popular can be\nshared and can increase the number of apps that can be run concurrently.\nClasses that initialize slowly can be initialized at system boot time\nby the zygote, decreasing the time to launch a specific app.\n\nTo select which classes to preload, I exercised Android\u0027s built-in apps\nas well as these apps from Market: ESPN score center, Amazon, Flixster,\nTwitter, Adobe Reader, Ebay Mobile, Facebook, Solitare (Ken Magic),\nBarcode Reader, Google Earth and Square.\n\nA cycle of launching ~460 (non unique) activities in sequence took 9m35s\nwith the previous preloaded-classes list. The update improves the launch\ntime of the same sequence to 9m27s: the marginal improvement over the\nprevious set of preloaded classes is negligible.\n\nhttp://b/3004763\n\nChange-Id: Ida511ae31eeff6d95d9cb6aacae68b9bb9dd2ebe\n"
    },
    {
      "commit": "9d0577ec0c285c055da4c910dcb597fdae5bc5e5",
      "tree": "6014db617dec5f348b5347c67e2680e3b804aeeb",
      "parents": [
        "f6864beca33d976c7482ef3ec2a300b4af6bdab6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 17 22:57:36 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 17 22:58:41 2011 -0800"
      },
      "message": "LayoutLib: properly configure ApplicationInfo with targetSdkVersion.\n\nChange-Id: I1bfef890206552843d1a7a8d0564741f2a37494f\n"
    },
    {
      "commit": "796992a942f3508a15ee62d34d6c7ec5de045d83",
      "tree": "4ea8c35673499bcb13af04953050935d78239361",
      "parents": [
        "60610d245f899c8c48ba6c7e94c0a20010fc6eed"
      ],
      "author": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Mon Jan 17 21:55:18 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 17 21:57:34 2011 -0800"
      },
      "message": "Allow TabHosts to have no children in the tabcontent widget\n\nReplace the code which throws an exception if there are no children in\nthe FrameLayout that is the tabcontent, with code to add a single\ndummy tab.\n\nThis makes the TabHost renderable in those scenarios where the real\ntabs are added dynamically rather than via XML.\n\nChange-Id: I72442bd7d40eddd875b3507585c1f372fcae3329\n"
    },
    {
      "commit": "70552fb92dbc5cb5b1d53b20f92f2a64969a50c4",
      "tree": "246cf99b69ad78fab8574ec0fdea00231f4dfea5",
      "parents": [
        "9512d6aa206f8bb44ab52b6dfe5ee8cb5c2960ea"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 17 13:49:12 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 17 14:00:29 2011 -0800"
      },
      "message": "LayoutLib: Update to use the new RenderResources API.\n\nChange-Id: Ic64eff3f324c4519da89bab10e6d59f0a9341a04\n"
    },
    {
      "commit": "87ab45c0fe4db814a7364fce3b88be3a49507e90",
      "tree": "04460db0ef24ecdbdb7d45d171a3100dea0aa6fd",
      "parents": [
        "bdac9e0fbe874cf7414228624bd0d3af4f715ccc",
        "d1d6fafc7fc63543b10552dadf202dd6fa40fe6b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Jan 16 19:38:33 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jan 16 19:38:33 2011 -0800"
      },
      "message": "Merge \"LayoutLib: extract resource resolution into its own class.\" into honeycomb"
    },
    {
      "commit": "fbf097732137a32930d151f7ba6816a5b870c32a",
      "tree": "1f05823ea1cb06aaa3ab0954cdde614b370f30e6",
      "parents": [
        "115ad16551c9cf9551f44cbea59f3edf83e4a340"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jan 16 14:06:57 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jan 16 18:58:49 2011 -0800"
      },
      "message": "Support non-rectangular input regions.\n\nThis enables the system bar to carve out a region through which\nevents will be sent to the IME behind it.\n\nBug: 3238092\nChange-Id: I69b855a8d9b5b3ee525266c0861826e53e5b5028\n"
    },
    {
      "commit": "d1d6fafc7fc63543b10552dadf202dd6fa40fe6b",
      "tree": "4a1f339ea77c9e24f838439513c6041b5f74dd40",
      "parents": [
        "772f5600ef720945b98054246982fd3b711830a9"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Jan 16 11:12:18 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Jan 16 11:18:28 2011 -0800"
      },
      "message": "LayoutLib: extract resource resolution into its own class.\n\nNext step is to make it a jar that will also live in\nADT.\nThe version in layoutlib will be through a prebuilt jar\nfile, like ninepatch.\n\nAlso add ninepatch.jar inside the layoutlib.jar file.\n\nChange-Id: I4a0cc9f2dd99709de6408386054c6d4abae7c824\n"
    },
    {
      "commit": "51a7e5447de94791c464cda5cc6ebbf616d73c80",
      "tree": "f0ddc73ed710701422dff1a01bf2cffb1df34cb1",
      "parents": [
        "0831b3fae504e8fa94e6b1cc0d4e6c3fccaef231"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 14 16:40:43 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 14 16:56:00 2011 -0800"
      },
      "message": "LayoutLib: update logs to use new data bundle\n\nAlso change some resource.resolve tags to resource.format\n\nChange-Id: I3f0b0d2eb69a5ec98375e4014a3bb1bfceb8c855\n"
    },
    {
      "commit": "0831b3fae504e8fa94e6b1cc0d4e6c3fccaef231",
      "tree": "7937fe077b86e18113c6f7552af85dbeeee0764a",
      "parents": [
        "c6684f9e9790e92960504e9b32f20f27003d9f37"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 14 15:03:52 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 14 15:15:34 2011 -0800"
      },
      "message": "LayoutLib: Misc fixes.\n\n- Fix resource resolution for framework\n  resources of type \"id\" that are dynamically generated\n  through \"@+id/...\"\n\n- Proper implementation of setBitmap on a canvas that\n  already has a bitmap. Transform/clip are kepts but the\n  existing layers are replaced with the new bitmap\n\n- return a null service for INPUT_METHOD_SERVICE in\n  Context.getSystemService\n\nChange-Id: I35e46fff50e6492a8995e95427d5f38bc945429d\n"
    },
    {
      "commit": "bbefc8662ac733fd6abfae54d97730506b5e2bd6",
      "tree": "62fd4c0605650b66d9481aff22ba4404dede359d",
      "parents": [
        "402438bb40795a3608509f40bcff6245698185ad"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 13 18:02:08 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 13 18:02:08 2011 -0800"
      },
      "message": "LayoutLib: Fix multi-line text rendering.\n\nStupid indices.\n\nChange-Id: I1dbdd04b8f25a5769de8dc21e6c513cef3e35635\n"
    },
    {
      "commit": "918aaa5717fce6081557c82ce1c439b6922737d5",
      "tree": "bf78b135a70551d4b6f071abea94f31d327ac934",
      "parents": [
        "310a4d815b693e358d151b9aa2823c5022993f9b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 13 10:59:34 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 13 11:08:27 2011 -0800"
      },
      "message": "LayoutLib: Use the new log tag constants from LayoutLog\n\nChange-Id: I29dd578ae16405358d3673caf13528be393f0967\n"
    },
    {
      "commit": "310a4d815b693e358d151b9aa2823c5022993f9b",
      "tree": "a49bb3b79db42992156b4d8c5a556bcf36e3d2c7",
      "parents": [
        "1f1957f50fec4bc8d8716793d22bb23ee7fb4a7f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 13 10:43:00 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 13 10:43:00 2011 -0800"
      },
      "message": "LAyoutLib: Fix build by adding missing IWindowSession implementation.\n\nChange-Id: I0af178d149b782cac3ae0c36fa5fc03f4dc6118b\n"
    },
    {
      "commit": "1f1957f50fec4bc8d8716793d22bb23ee7fb4a7f",
      "tree": "b218565d0b9b933288a884131d9ac32ef23cc456",
      "parents": [
        "66a95e4dbeb1c6d33ceb7c320033041e7f8e2aaa",
        "ee592fe4e60e940599fc1ccf43a98eb80961feb8"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 13 10:22:53 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 13 10:22:53 2011 -0800"
      },
      "message": "Merge \"LayoutLib: move MockView back into its original package.\" into honeycomb"
    },
    {
      "commit": "66a95e4dbeb1c6d33ceb7c320033041e7f8e2aaa",
      "tree": "8c428e4bb3f72281603a0ae57553b380cc7474b6",
      "parents": [
        "c14b10c3068359b717b3f35b7218ce0e6dcdd08c",
        "162ee1ed3d6c8a1e6d9347136e623e3429f6f3f8"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 13 10:22:43 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 13 10:22:43 2011 -0800"
      },
      "message": "Merge \"LayoutLib: Add getViewParent/getViewIndex on RenderSession.\" into honeycomb"
    },
    {
      "commit": "ee592fe4e60e940599fc1ccf43a98eb80961feb8",
      "tree": "c3887fb2f20574bc545140d8ff23a79ffd633a84",
      "parents": [
        "162ee1ed3d6c8a1e6d9347136e623e3429f6f3f8"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 12 20:36:02 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 12 20:36:02 2011 -0800"
      },
      "message": "LayoutLib: move MockView back into its original package.\n\nThis is used by Eclipse when the custom view is not found.\nIt couldn\u0027t find the view in the new package either.\n\nWe should probably move this logic of creating a mock view\ninto the layout library instead.\n\nChange-Id: Ifa1a717cddf7004a7719bb4d0798cd53b43273ea\n"
    },
    {
      "commit": "162ee1ed3d6c8a1e6d9347136e623e3429f6f3f8",
      "tree": "6acd20f7b96a38366dc67a77476eb2c768bf83a3",
      "parents": [
        "56222cfbe9973c518f7e8c9113c614de80b5a4b2"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 12 20:16:52 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 12 20:16:52 2011 -0800"
      },
      "message": "LayoutLib: Add getViewParent/getViewIndex on RenderSession.\n\nChange-Id: If91aa837b71a7329f53b1c4190332c2296166940\n"
    },
    {
      "commit": "cb27d4b2f530033c90432745115b914d8f26c3e7",
      "tree": "f56240084b0c29e3825cf35b0a35887b446def61",
      "parents": [
        "e9739d09cb53fd05cc9229049b3d54c7f6816450",
        "56222cfbe9973c518f7e8c9113c614de80b5a4b2"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 12 18:23:04 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 12 18:23:04 2011 -0800"
      },
      "message": "Merge \"LayoutLib: use tags in logs.\" into honeycomb"
    },
    {
      "commit": "56222cfbe9973c518f7e8c9113c614de80b5a4b2",
      "tree": "4d9eb725e5aa1397b4a26f874f588f5a239dcabb",
      "parents": [
        "147f7df35c554cf24287c732f8b74b0018e1ddbe"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 12 15:59:49 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 12 15:59:49 2011 -0800"
      },
      "message": "LayoutLib: use tags in logs.\n\nChange-Id: Ib85272249d285ecef409bf063903bcd91514a424\n"
    },
    {
      "commit": "02d2b3ba9ba830a8147db2739613f7bbb2d0fcbf",
      "tree": "39071f4218e05643962d875f780ac55b55bdd032",
      "parents": [
        "5220834c6ccdabf949dfe7160548ad378850d71b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jan 10 20:43:53 2011 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jan 11 18:30:23 2011 -0800"
      },
      "message": "API CHANGE: startDrag() now takes \"int flags\" instead of \"boolean localOnly\"\n\nThere will be, in the future, a flag (View.DRAG_FLAG_GLOBAL) that means\nfor the drag to be cross-application.  For now that flag constant is @hide\nand furthermore the server-side implementation strips it, enforcing\nlocal-only drags.\n\nChange-Id: I8db840480ab90e18a5b8ecf29d62b4e6eafd405e\n"
    },
    {
      "commit": "d7cbf3f72c73ba01293f6676453352ef60df3778",
      "tree": "732d6fb5950299f526300027f110371c38378efc",
      "parents": [
        "9b5b54b72349982213c1482cfdf2908346921ecd"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 11 17:11:01 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 11 17:11:01 2011 -0800"
      },
      "message": "LayoutLib: Log error when style can\u0027t be found.\n\nChange-Id: I9a88cdac44a2d31c053e7f0c92a14e69bd82ac83\n"
    },
    {
      "commit": "85de0087fc6a65a66d3994f0b8dd3fecd9db2526",
      "tree": "9d23f5182c806ee7db7f008499af41edd6a99596",
      "parents": [
        "0827e697a9965195ca12ba593332c555702aa94a",
        "639e1bd35231a8f71e7acc95fedaf13ace9b65a9"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 11 15:34:44 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 11 15:34:44 2011 -0800"
      },
      "message": "Merge \"LayoutLib: misc fix.\" into honeycomb"
    },
    {
      "commit": "639e1bd35231a8f71e7acc95fedaf13ace9b65a9",
      "tree": "493affa75b868223086506cf4d0d8194533bb94f",
      "parents": [
        "29c288da5260ac221b941e69b960aa2127cbdef0"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 11 15:14:13 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 11 15:14:51 2011 -0800"
      },
      "message": "LayoutLib: misc fix.\n\nChange-Id: I0e2eff376d8f8e7682c28ef771b886d5fab5ff65\n"
    },
    {
      "commit": "6c740cf71e5ce5ba7c8493c545c3a57c57ac7024",
      "tree": "c9e1b92e7c74bcbded90777cba7055f6ddc789bd",
      "parents": [
        "0de16070935adb8656d646b8c69a362652db7443"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 11 13:19:02 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 11 13:21:57 2011 -0800"
      },
      "message": "LayoutLib: Improve error reporting.\n\nChange-Id: I37cad7e2efb959202960c57b271c55c759867139\n"
    }
  ],
  "next": "0de16070935adb8656d646b8c69a362652db7443"
}
