)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "0de16070935adb8656d646b8c69a362652db7443",
      "tree": "2ffc23024b989155fb563d10fdae7000f1164d7e",
      "parents": [
        "b3830b8978aa05746912210932e26ebf1836aab5"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 11 12:10:57 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 11 12:15:15 2011 -0800"
      },
      "message": "LayoutLib: fix XmlUtils.convertValueToInt\n\nIt looks like the device implementation of Integer.parseInt\nis able to handle converting hexa value \u003e 80000000 while the\ndesktop VM cannot.\n\nThis patch provide a fix for this.\n\nWhile implementing it and running the TestDegates test I realized\nthat some delegate methods for Region were mising, so this adds them\ntoo.\n\nChange-Id: Ifee1efd47c8c52adc2f4658ec4fc8bd55adb84b4\n"
    },
    {
      "commit": "b3830b8978aa05746912210932e26ebf1836aab5",
      "tree": "c891039b07c40d8a35a52cc7072d9f5fbb6e2221",
      "parents": [
        "eb87b3bb53a8a9e9a246b4b70ea40172e2229c85"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 11 10:54:12 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 11 10:54:12 2011 -0800"
      },
      "message": "LayoutLib: only support animator-type animations.\n\nChange-Id: Ia3609fc5d11555190bc323d61a3577144a4692fd\n"
    },
    {
      "commit": "eb87b3bb53a8a9e9a246b4b70ea40172e2229c85",
      "tree": "b41590e12292ae4234ba99ff51e1f8ce7045db40",
      "parents": [
        "a57ca45d5df0f79b9be408105d2ed1c34e128130"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 10 21:49:40 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 10 21:51:55 2011 -0800"
      },
      "message": "LayoutLib: fix some issue with resource resolution.\n\nTypedArray.getResourceId() is not only about id/foo,\nit can be any type of resources.\n\nChange-Id: Ia5e147bc078bb349a3fa500a04c596ae44ea34ce\n"
    },
    {
      "commit": "419e8296ea76c5f1db1abbaa88b39b538fa42403",
      "tree": "45de664a4397d600b3ba39434cdaa3b2bab57328",
      "parents": [
        "5c6b786e1c1a103fe3f80b294ac166da1555fffa"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 10 11:57:49 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 10 11:57:49 2011 -0800"
      },
      "message": "LayoutLib: move asserts around.\n\nChange-Id: I6fcfcf2e6fad1d9fa172b9a8c20c72fa2533e7fa\n"
    },
    {
      "commit": "c77515e59029580caa68ba7602264ebdfd602daf",
      "tree": "5d3f1294c8fa451b6b5ef5ac729f6943bcdc357b",
      "parents": [
        "479101a9b4142d21d42351684bc9bc65ec3471be"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Jan 09 17:15:56 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Jan 09 18:11:54 2011 -0800"
      },
      "message": "LayoutLib: display warning when a resource reference fails to resolve.\n\nAlso fixed some warnings where a field hid one from a parent class.\n\nChange-Id: I04ed19ebc49ae0bb0abdb0b25bc1c182fa0db440\n"
    },
    {
      "commit": "479101a9b4142d21d42351684bc9bc65ec3471be",
      "tree": "ae906f850c9514b3712e31e62675af7adef9da58",
      "parents": [
        "ae34a7cd2d65fb89f1d4bffd6316d8b817a45da5"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Jan 09 11:26:47 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Jan 09 14:57:20 2011 -0800"
      },
      "message": "LayoutLib: Fix moveChild animation.\n\nOnly support animation for view move inside\nthe same layout.\n\nAlso fix animation thread to property support multiple\nanimation running at once.\n\nChange-Id: I45cad84e7b9f3a4f281c956d32934eb74e807afb\n"
    },
    {
      "commit": "b6e53f481294aec2edac5d83d9fde81827c23bd7",
      "tree": "daf8a8579afe29b402eeda142dfbf596eb38fd88",
      "parents": [
        "46a329244db12b6f7afc3c9a6409d420241a1058"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 07 18:37:49 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 07 18:37:49 2011 -0800"
      },
      "message": "LayoutLib: add a few misc implementations.\n\nChange-Id: I586f1d5ecc4f254fc04ea1171eb499d06ac592eb\n"
    },
    {
      "commit": "46a329244db12b6f7afc3c9a6409d420241a1058",
      "tree": "70923f332ecf9ccc1b6a2c0cc498a7c8aa9bc9da",
      "parents": [
        "7550ec1d8e526c4ae8c0bb08b06e1b6e799eacec"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 07 18:16:43 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 07 18:16:43 2011 -0800"
      },
      "message": "LayoutLib: finish Typeface and unload them in dispose.\n\nChange-Id: I3a48f84678f62d669d303fc73b041bb3fe5f333b\n"
    },
    {
      "commit": "7550ec1d8e526c4ae8c0bb08b06e1b6e799eacec",
      "tree": "9f9df4a419d57377fcccd7f5c17b632ec993b31f",
      "parents": [
        "d7cc1244d7f0901688545c8535fa531fbb68669a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 07 17:02:46 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 07 17:14:36 2011 -0800"
      },
      "message": "LayoutLib: remove fade in/out transition on moveChild.\n\nChange-Id: I69a70ecb165f19feca55fc30a3f48ebea896daa3\n"
    },
    {
      "commit": "d7cc1244d7f0901688545c8535fa531fbb68669a",
      "tree": "2bee92b90402c349fd6e5e25f01459585fc79c13",
      "parents": [
        "2c602e6a66469c9fcd8bc4d7d64aa24134dad8d9"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 07 16:16:21 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 07 16:16:21 2011 -0800"
      },
      "message": "LayoutLib: fix moveChild again.\n\nChange-Id: Ib69a06e44be1e332f0f43c36c795c86270cb1b71\n"
    },
    {
      "commit": "2b9c38ab62abc8d5b2f956e961087f259caf25ff",
      "tree": "8b48c79c6f861b71e4b1791b107df9e7e8add7ae",
      "parents": [
        "fe75027c5c2bbb53f008ae5382de94ed8d37317b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 07 12:47:31 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 07 12:49:49 2011 -0800"
      },
      "message": "LayoutLib: fix animated moveChild.\n\nThe child can only be added to the new viewgroup\nafter it\u0027s been removed from the previous one, which\nis delayed if there\u0027s an animation.\n\nChange-Id: I9123a2670d0d17b3eb6f8f89085ebab8ca2b800f\n"
    },
    {
      "commit": "10af738336cb18c5d86710b2961d91e2d3e8d410",
      "tree": "6c695f5d71b47157a42f802f94252aedaf0e78bc",
      "parents": [
        "f0fe6d311d183c5fcf45d5e3e995fc8f9ed12f8b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 06 19:20:03 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 06 19:20:03 2011 -0800"
      },
      "message": "LayoutLib: Finish the matrix delegate.\n\nChange-Id: Ife70a4707c113f4a2aed18e303cb2f221c73db2a\n"
    },
    {
      "commit": "a7cac5e0542779cadf0f5ccf71584e4b4425f7a6",
      "tree": "3a58441f7362a9e2b03afec07fe9f669da9a828d",
      "parents": [
        "adba8021cd2fd0d20856fb4fbfed2cb000f3f1d5"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 06 15:50:42 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 06 18:13:49 2011 -0800"
      },
      "message": "LayoutLib: fix clipping issues.\n\nThere were two issues:\n- Graphics2D.setClip only works on rectangular shapes.\n  This means doing a setClip on a non rectangular shape should\n  basically reset the clip and intersect with the new shape.\n\n- the current clip can be null, so the combineShape method\n  must handle it.\n\nChange-Id: Id2cd7475e991d8b533ff2e8850cc2c27663f9e52\n"
    },
    {
      "commit": "29c288da5260ac221b941e69b960aa2127cbdef0",
      "tree": "687a256d67bc892b42361dc5b4b627370a546582",
      "parents": [
        "67ba204aa23e7d5a96ad241a1623e44976b51741"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 03 04:11:03 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 06 11:11:05 2011 -0800"
      },
      "message": "Cherry-pick 9b53dd9d60a01ddb1307177c296c7b4fd6114753 from master\n\nChange-Id: I670872542feb62c47fe693eb183b19e2eef2b20d\nLayoutLib: use new API with log in init method.\n"
    },
    {
      "commit": "f31161a0e71c0446283610e9bf7a11e0be12bd5e",
      "tree": "f7c479d8e0a0596d9af96283258432f71e043af1",
      "parents": [
        "70588bf864f961974c93aace7586d3e2773a54a8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 04 21:02:48 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 05 14:12:55 2011 -0800"
      },
      "message": "Add new \"animator\" and \"interpolator\" resource directories.\n\nFirst phase, allowing apps to move over to the new names.\n\nChange-Id: Ia16f3e2383e4a6599a0011d0464f0aacb1ce9207\n"
    },
    {
      "commit": "c226e571fd6ce7db74fce87dbf300a70f8a58c29",
      "tree": "e0748aa0e515bb85acfdf7f840c826d59472f86f",
      "parents": [
        "7eab094722af54717859b7dcce3cc050f059e00b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 03 03:19:13 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 03 03:28:20 2011 -0800"
      },
      "message": "LayoutLib: Misc javadoc fixes.\n\nChange-Id: Iabe081c20b361b034c2e66b975b8756c0fdcd3d1\n"
    },
    {
      "commit": "b44b43b1579486ff7ecd0f7528f17711acdeae98",
      "tree": "47542b0726249f3b7fb02c41412088f15f816cec",
      "parents": [
        "d43909c7503e11eb335a452d296a10804bb01fd6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Dec 23 10:22:14 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 24 00:21:51 2010 -0800"
      },
      "message": "LayoutLib: Support Region through delegates.\n\nalso finish supporting some clip operation\non the canvas.\n\nChange-Id: I743b9e52a7aa6e9340506f1c904cc1cfbf3ff81f\n"
    },
    {
      "commit": "d43909c7503e11eb335a452d296a10804bb01fd6",
      "tree": "f9dc11c23a34227d094e7340a05f268032224cfc",
      "parents": [
        "20805343296eef04081fee82fd04547f51225fe3"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Dec 23 07:16:21 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 24 00:21:51 2010 -0800"
      },
      "message": "LayoutLib: add support for unsupported drawing modifiers.\n\nDrawFilter, Rasterizer, ColorFilter and MaskFilter\nare not supported but we need to provide their\nJNI counterparts anyway, to at least display warnings\nwhen they are used.\n\nAlso improved the API to query Paint for Shaders\nand PathEffects, and clean up some code by\nmoving asserts into the DelegateManager.\n\nChange-Id: I8942514565d28576d5608c6373bda25d86d42ff2\n"
    },
    {
      "commit": "20805343296eef04081fee82fd04547f51225fe3",
      "tree": "2a5ec42a96c385a526b59e69447993b0d988c9c8",
      "parents": [
        "1039872f597995cab2f88b9c841f8c2b8e71c451"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Dec 23 03:25:57 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 24 00:21:50 2010 -0800"
      },
      "message": "LayoutLib: Fix Canvas layer support with 2+ layers\n\n- When drawing is not clipped to the top layers,\n  drawing should not happen automatically on all\n  existing layers. Instead each layer\u0027s flags dictate\n  whether drawing should happen on layers beneath, starting\n  with the top layer.\n- upon restore, the same mechanism is taken. Only blit\n  a layer into the layer beneath if it was drawn into\n  using the logic above.\n\nAlso fixed:\n- saveLayer() does not, in fact, always save matrix\n  and clip info. The flag dictate this, the same way\n  it does in save()\n- drawing code didn\u0027t properly detect the case of drawing\n  into layers if a save() was called after saveLayer().\n  Now the code only looks at the layer list which provide\n  all the needed info (flags mostly), and doesn\u0027t rely\n  on mLocalLayer (which is used during restore only now).\n- Properly handle HAS_ALPHA_LAYER_SAVE_FLAG (or lack\n  thereof) when creating the BufferedImage for the layer.\n\nChange-Id: I2fbbcc0f5d3a3dd208763705bc23e6658fd4e573\n"
    },
    {
      "commit": "b1da1afa7418960b650780250bbd34c81af61aa3",
      "tree": "45b4798c9a796223bb854d8a5c56a2b5b2c9461b",
      "parents": [
        "d38e776a3cc8cb53945cbebafbe6f6c2e3501fa5"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Dec 22 10:13:23 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Dec 22 10:30:53 2010 -0800"
      },
      "message": "LayoutLib: improve bitmap support.\n\nChange-Id: I703c2bdf51380b54fd5c20b08d3bc74833d9bc6e\n"
    },
    {
      "commit": "d38e776a3cc8cb53945cbebafbe6f6c2e3501fa5",
      "tree": "91f1359ed446aeafc20c8322073612a77c1652d5",
      "parents": [
        "70119929549b6d241244c51952ed1f4a313a5ff7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 21 06:20:28 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Dec 22 10:30:53 2010 -0800"
      },
      "message": "LayoutLib: support for layers.\n\nLayers require that drawing methods potentially\ndraw in more than one bitmaps.\n\nTo handle this this patch offers the following:\n- move all drawing methods to use Drawable\n- Drawables are now handled by GcSnapshot since\n  its the one handling the layers\n- moved Canvas_Delegate.createCustomGraphics to\n  GcSnapshot which does not expose the Graphics2D\n  objects anymore so its draw() methods are the only\n  way to draw.\n- handles creating layers in GcSnapshot.save() and\n  blitting them in restore()\n\nOther changes:\n- Clean up the create/save API in GcSnapshot\n- Fixed drawing bitmaps with alpha and other\n  composite modes.\n\nChange-Id: I1e230087493d044a10de71f4b6d29083e3f3bf64\n"
    },
    {
      "commit": "63fd87113cea6abec97a6cd966e090e9b590fc3b",
      "tree": "1cbdd623cdac465fc3a648b4afc93b4212a213f7",
      "parents": [
        "d348b6eaa98e23cb38d90906df109aaa2d20ea7f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 21 01:33:04 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 21 10:43:18 2010 -0800"
      },
      "message": "LayoutLib: Misc rendering fixes.\n\n- always set up the stroke. Paint may not have the proper\n  style when drawing lines. stroke should still be setup.\n\n- Fixed vertical linear gradient. Old code generated\n  a gradient ratio of NaN\n\n- Fixed alpha rendering when using shaders. In that\n  case the alpha channel from the paint color should be\n  used in conjunction with the shader.\n\n- Fixed miter limit. Java expects the value to be multiplied\n  by the stroke width\n\n- Fixed support for drawing ALPHA_8 bitmaps. Java2D doesn\u0027t\n  have bitmaps with only alpha channels, so we keep using\n  ARGB bitmaps but when drawing them into a bitmap we erase\n  the color information.\n\nChange-Id: I4f04341fc843e3f7dadd1fdbf709b11a4f1e24b9\n"
    },
    {
      "commit": "d348b6eaa98e23cb38d90906df109aaa2d20ea7f",
      "tree": "c9195fa9628e78108424cbae0dd2a86a12d2faeb",
      "parents": [
        "19a021038f2f4683dddef651543d7298f5bd7218"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Dec 20 08:22:47 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 21 10:43:18 2010 -0800"
      },
      "message": "LayoutLib: support for Path and BitmapShader using delegates.\n\nAlso created delegates for all missing shader, xfermode\nand patheffect classes. Moved the logic of the xfermode,\nand patheffects that was in Canvas_Delegate into the\nxfermode/patheffect classes, and added support (in all\n3 clases) for knowing if the shader/xfermode/patheffect\nis actually supported or not. Make use of fidelityWarning\nin LayoutLog if they are not.\n"
    },
    {
      "commit": "19a021038f2f4683dddef651543d7298f5bd7218",
      "tree": "358449cfa97dffe26183d672f92aae8101a1e624",
      "parents": [
        "34884643b66d2560273b7c29d3eacb59560ab231"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Dec 15 19:20:08 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 21 10:43:17 2010 -0800"
      },
      "message": "LayoutLib: Update layoutlib with revised API.\n\nChange-Id: I78929df621f48e85d9cbefe1f5590f9ce99bbaff\n"
    },
    {
      "commit": "f890fab5a6715548e520a6f010a3bfe7607ce56e",
      "tree": "6c61a1b736399a9dde6b83f4978ad5ef36e18a95",
      "parents": [
        "2a1cc5ac30efc05880a12a2114c09364fc38e032"
      ],
      "author": {
        "name": "Patrick Dubroy",
        "email": "dubroy@google.com",
        "time": "Sun Dec 19 16:47:17 2010 -0800"
      },
      "committer": {
        "name": "Patrick Dubroy",
        "email": "dubroy@google.com",
        "time": "Mon Dec 20 17:02:15 2010 -0800"
      },
      "message": "Ensure bitmaps aren\u0027t freed while referenced from a display list\n\nAlso removes the reference queue finalizers. They aren\u0027t necessary\nanymore now that Bitmaps are allocated in the heap.\n"
    },
    {
      "commit": "cfdc784b6cdcbbb2bf2ba4d53d9a9eb2c37278a3",
      "tree": "77c8994cc5ff69df955475f0c6f43dea8aafa88b",
      "parents": [
        "34961cc2e5cd483b15dfd1ff1eb33b01b849e0dc"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 14 18:05:22 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Dec 15 13:44:03 2010 -0800"
      },
      "message": "LayoutLib: replace the stack of Graphics2D with custom snapshots.\n\nThe first step is to allow the canvas to save only the matrix or\nthe clip. Previously, since the graphics2D were created completely\nnew on each save, everything was saved.\n\nAlso allows to set transform/clip on the Canvas when no bitmap\nhas been set (and therefore no Graphics2D exists).\n\nThis is required by BitmapFactory.\n\nChange-Id: I37eff6dde1ca708d58ba317b40e9b3236f3ef3d0\n"
    },
    {
      "commit": "22ff4ef09fc80a85992d8a911fff03a4712187e7",
      "tree": "78843d9e4c6129a595bf1777921798466189b0ac",
      "parents": [
        "982b71bf4713d57b0fdb9acaaf9f9465a817aacb"
      ],
      "author": {
        "name": "Patrick Dubroy",
        "email": "dubroy@google.com",
        "time": "Tue Dec 14 17:26:27 2010 -0800"
      },
      "committer": {
        "name": "Patrick Dubroy",
        "email": "dubroy@google.com",
        "time": "Tue Dec 14 17:26:27 2010 -0800"
      },
      "message": "Fix build break due to additional arg in Bitmap ctor"
    },
    {
      "commit": "21534cfc78bacc2e76a84fa198605ee2a831de84",
      "tree": "d56c698d7dabf3b1683bb61081d88878145808c9",
      "parents": [
        "644b75edb3a336dbae2e363d609ff4228ce05210",
        "d9c64369cf9be6568af2d79c35fb470cc261730d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 14 15:03:26 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 14 15:03:26 2010 -0800"
      },
      "message": "Merge \"LayoutLib: Fix gradient rendering.\""
    },
    {
      "commit": "d9c64369cf9be6568af2d79c35fb470cc261730d",
      "tree": "87e517f31538bdf425e660032784ee98e9b38c52",
      "parents": [
        "f1416e4dffb0874f163febfa12f2648eac0c3a77"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 14 14:40:41 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 14 14:49:55 2010 -0800"
      },
      "message": "LayoutLib: Fix gradient rendering.\n\n- fully support canvas transform\n- fully support shader local transform\n- fix repeat/mirror issue in the negative values.\n\nChange-Id: Ib2aa7ade1c2702da4364cbda9a5a3ae72c1d3174\n"
    },
    {
      "commit": "dcc995c72fffcb37ede82c1a040e2ae93fdcb065",
      "tree": "0a391f5ddf177b4db0f69c2ec822dd398a75a54d",
      "parents": [
        "3be80f2e6cf763fdfeb058d5a4ac8257cdc91135",
        "f1416e4dffb0874f163febfa12f2648eac0c3a77"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 14 14:32:09 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 14 14:32:09 2010 -0800"
      },
      "message": "Merge \"LayoutLib: Misc fix to rendering.\""
    },
    {
      "commit": "d28378c903cf800882889619c7771f060d85b712",
      "tree": "ebdf40bd997f3e02d55425275ad3708828f4affe",
      "parents": [
        "e7018262d1475a826af9419cba2a4bc51bb449c8",
        "90c6b7e639921e264ac65699439578bcbdbf583a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 14 12:03:21 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 14 12:03:21 2010 -0800"
      },
      "message": "Merge \"LayoutLib: Use the new ninepatch API to suppor density.\""
    },
    {
      "commit": "f1416e4dffb0874f163febfa12f2648eac0c3a77",
      "tree": "c1577adfcaaf330e259da7bdbab9185e5a0a21f6",
      "parents": [
        "90c6b7e639921e264ac65699439578bcbdbf583a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 14 12:00:14 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 14 12:00:14 2010 -0800"
      },
      "message": "LayoutLib: Misc fix to rendering.\n\nChange-Id: Ia73fab1be3c01e6ce5791973e636e45a0f75ceb6\n"
    },
    {
      "commit": "00db2213bf82c04610137a36e9190003f712952c",
      "tree": "77f5373f1c3c4523b5988e80d0589ac264f7e5be",
      "parents": [
        "2bc248b698b17fd333beae828039a8bff7604a9f",
        "0ccc8b7345eac0b507c221be47e55926cbda8957"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Tue Dec 14 11:31:29 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 14 11:31:29 2010 -0800"
      },
      "message": "am 0ccc8b73: am 5441a9ff: Merge \"GL texture filtering changed from AND to OR, so rename tag name to match. (\u003cuses-foo\u003e \u003d\u003d AND, \u003csupports-foo\u003e \u003d\u003d OR, e.g. uses-feature vs. supports-screen).\" into gingerbread\n\n* commit \u00270ccc8b7345eac0b507c221be47e55926cbda8957\u0027:\n  GL texture filtering changed from AND to OR, so rename tag name to match. (\u003cuses-foo\u003e \u003d\u003d AND, \u003csupports-foo\u003e \u003d\u003d OR, e.g. uses-feature vs. supports-screen).\n"
    },
    {
      "commit": "0ccc8b7345eac0b507c221be47e55926cbda8957",
      "tree": "f8e5cc12e260b2dbbe72cbd7c767816782c7f5c2",
      "parents": [
        "7afa161368308e78bb4a66b4fd32558dfd556776",
        "5441a9ff2128cf2c5088974c74b79d2d1734f755"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Tue Dec 14 11:28:50 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 14 11:28:50 2010 -0800"
      },
      "message": "am 5441a9ff: Merge \"GL texture filtering changed from AND to OR, so rename tag name to match. (\u003cuses-foo\u003e \u003d\u003d AND, \u003csupports-foo\u003e \u003d\u003d OR, e.g. uses-feature vs. supports-screen).\" into gingerbread\n\n* commit \u00275441a9ff2128cf2c5088974c74b79d2d1734f755\u0027:\n  GL texture filtering changed from AND to OR, so rename tag name to match. (\u003cuses-foo\u003e \u003d\u003d AND, \u003csupports-foo\u003e \u003d\u003d OR, e.g. uses-feature vs. supports-screen).\n"
    },
    {
      "commit": "90c6b7e639921e264ac65699439578bcbdbf583a",
      "tree": "6644a14fd7cbebf7130462851b12c7543c9df44e",
      "parents": [
        "8da36314fd76ae6fe4549773ad00dc1883cb6bff"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Dec 13 19:08:38 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Dec 13 19:08:38 2010 -0800"
      },
      "message": "LayoutLib: Use the new ninepatch API to suppor density.\n\nLayoutLib now compiles against a prebuilt of ninepatch.\n\nChange-Id: I0a1ca60af90933c171ab3aa456b47f0329df2f55\n"
    },
    {
      "commit": "8da36314fd76ae6fe4549773ad00dc1883cb6bff",
      "tree": "17aac3ac742f63f6e7eeca3eb8e6b0ab11d15057",
      "parents": [
        "c0734f6c8d67deab00b10bd0bb75516cd1502dc0"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Dec 13 16:42:01 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Dec 13 16:42:01 2010 -0800"
      },
      "message": "LayoutLib: implement more of Canvas/Paint.\n\nChange-Id: I8e2a7a3bddbce08db5eb641b5075bedd75f7be27\n"
    },
    {
      "commit": "096b67f65510a5076f1f845f9e19dda2b30ea6bb",
      "tree": "55433fd8a7525c5360b3b4e0cfcd8b1ef4a442f2",
      "parents": [
        "e3f6336bcffc250da90ec864bccfa73ad1d016b9"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Mon Dec 13 16:25:54 2010 -0800"
      },
      "committer": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Mon Dec 13 16:25:54 2010 -0800"
      },
      "message": "GL texture filtering changed from AND to OR, so rename tag name to match.\n(\u003cuses-foo\u003e \u003d\u003d AND, \u003csupports-foo\u003e \u003d\u003d OR, e.g. uses-feature vs.\nsupports-screen).\n\nChange-Id: I0f20aed7f95169d9adfc7fe128191eb6e49d116f\n"
    },
    {
      "commit": "6735cffc1ddd18bdd6a46011e42d89204435361a",
      "tree": "5a5d2db4e28a953a7056a966c0b029e0615d7fd3",
      "parents": [
        "b170954d84b3ca084f9d613d99633d2828912d74"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 10 16:58:56 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 10 16:58:56 2010 -0800"
      },
      "message": "LayoutLib: parsed resources were always set as platform res.\n\nI broke this last week when adding the support for\nlayout params in moveChild.\n\nChange-Id: Iaaf9b9f685ca301638d4037e98428ea0a00279c9\n"
    },
    {
      "commit": "ffb42f6c5043de226f02318a1311669d35a90711",
      "tree": "c10b9172fe0f682c585fe35d49f20df373ae4ad3",
      "parents": [
        "436786e759ed5f5eee34137ea6bfe57414bb9ff4"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Dec 09 18:26:01 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 10 11:40:27 2010 -0800"
      },
      "message": "LayoutLib: Adapt to new LayoutLib\n\nAPI now uses ResourceValue instead of IResourceValue\nCapabilities renamed Capability\n\nChange-Id: Ia5d2b6c8d536e020a1f5496fb2285f67fc4346c4\n"
    },
    {
      "commit": "ddb76c4644756b31be948d70aaa8ee541dd94999",
      "tree": "782d260d2da982941148be7c1a0a0780749cdfdc",
      "parents": [
        "8028a951c3aa74990907efb9376d1093d84084af"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 24 12:56:06 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Dec 08 11:21:30 2010 -0800"
      },
      "message": "Change assets to use 64-bit API\n\nThe asset system and supporting libraries were using off_t instead of\noff64_t to access files larger than 2GB (32-bit signed). This change\nreplaces all off_t with off64_t and lseek64.\n\nThere is a new utils/Compat.h added for Mac OS compatibility.\n\nAlso fixed some size-related compiler warnings.\n\nBug: 3205336\nChange-Id: I9097b3cb7a602e811fe52f245939d8975da55e9e\n"
    },
    {
      "commit": "8d74c978bbf3da4095ef8e40c005a6fdf0637071",
      "tree": "2d797124a70d8619a1f97460c0d4600c5ad30d5c",
      "parents": [
        "5151b325a4d7e28d4739fb7113a2575991f1eb97"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 07 12:10:51 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 07 12:10:51 2010 -0800"
      },
      "message": "LayoutLib: explicitely override PropertyValuesHolder native code.\n\nChange-Id: Ic7dd9efc990d01b20db144117cb11eb130349048\n"
    },
    {
      "commit": "864f33a9f89a75d1395bca885bd191507cca4af6",
      "tree": "bc65e55347bd0d988cce1796770a26fa20f8fffb",
      "parents": [
        "afeffb744feea960f5b8a441984badd270207b62",
        "b5ddf041d61f9346a4055b5bc5d51bd812b2ec28"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Dec 06 11:32:43 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 06 11:32:43 2010 -0800"
      },
      "message": "Merge \"LayoutLib: Update font object when text info changes in paint delegate\""
    },
    {
      "commit": "b5ddf041d61f9346a4055b5bc5d51bd812b2ec28",
      "tree": "92248c4af035e582636ec5ee32b90eb22b06231b",
      "parents": [
        "26e30bb7fe373ad4bb569a5de2577e0c857e7c27"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Dec 06 11:08:37 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Dec 06 11:12:47 2010 -0800"
      },
      "message": "LayoutLib: Update font object when text info changes in paint delegate\n\nChange-Id: I6ff7e1ec4513918256aee99acc5ea298a5fdb8a8\n"
    },
    {
      "commit": "168677c9e2f8438ec5687e3c6b0e41b986c5b230",
      "tree": "c6adc3539c1d335242a1bb6d2203a98641d5453e",
      "parents": [
        "26e30bb7fe373ad4bb569a5de2577e0c857e7c27"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Dec 06 10:11:44 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Dec 06 10:11:44 2010 -0800"
      },
      "message": "LayoutLib: Fix logging.\n\n- Use the new logging API\n- remove log object reference everywhere but in Bridge\n- all logging code accesses Bridge.getLog()\n- prepareScene sets the current scene log object in Bridge.\n\nChange-Id: Ib0517ccd6454c4baf218b6baa978a126f91671e7\n"
    },
    {
      "commit": "e1179ea065392485a6e3bf1e28a1242179cd48b0",
      "tree": "2dfb7425ad0a3eccb6cbe75e4bfa761e80e9db47",
      "parents": [
        "01811aa86279af1b341a4fff344d66c0ebdd63da"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 03 11:35:29 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 03 11:50:36 2010 -0800"
      },
      "message": "LayoutLib: Animation support in insert/move/removeChild actions.\n\nAlso update to use the new SceneResult API.\n\nChange-Id: Iaac6df0c250fbefc8758310c37e0cf47cae6875d\n"
    },
    {
      "commit": "01811aa86279af1b341a4fff344d66c0ebdd63da",
      "tree": "9ae7d13d12ed22fdec5b527f4bdb3a78eba2b7df",
      "parents": [
        "3c78f2de353df3e287444dd9f9fbab3bd4456217"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Dec 02 18:54:11 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Dec 02 18:58:25 2010 -0800"
      },
      "message": "LayoutLib: Create new layoutparams when moving a child\n\nChange-Id: Ie2183490e8d26ef194030a9d87fe7745f24f1d83\n"
    },
    {
      "commit": "3c78f2de353df3e287444dd9f9fbab3bd4456217",
      "tree": "739a81d84e832dfb0b9398b895dd3c6dea810335",
      "parents": [
        "3c3743c5413a81c998f2801573481f65e9e25072"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Dec 02 17:49:11 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Dec 02 17:49:11 2010 -0800"
      },
      "message": "LayoutLib: Update to use the new moveChild API.\n\nAlso, return supported capabilities.\n\nChange-Id: I824120d50f2865a667dc6c81d455ae19321966b6\n"
    },
    {
      "commit": "9065504a63d6bf37bf621191fda1d1fe4da76ee3",
      "tree": "500948db3ef54c52fc65f52f4ab4a220e4504009",
      "parents": [
        "d6a46103bfbed17451abf0fb608d7b778597846c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Dec 02 13:50:46 2010 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Dec 02 16:01:32 2010 -0800"
      },
      "message": "Improve support for external keyboards.\n\nUse Vendor ID, Product ID and optionally the Version to\nlocate keymaps and configuration files for external devices.\n\nMoved virtual key definition parsing to native code so that\nEventHub can identify touch screens with virtual keys and load\nthe appropriate key layout file.\n\nCleaned up a lot of old code in EventHub.\n\nFixed a regression in ViewRoot\u0027s fallback event handling.\n\nFixed a minor bug in FileMap that caused it to try to munmap\nor close invalid handled when released if the attempt to map\nthe file failed.\n\nAdded a couple of new String8 conveniences for formatting strings.\n\nModified Tokenizer to fall back to open+read when mmap fails since\nwe can\u0027t mmap sysfs files as needed to open the virtual key\ndefinition files in /sys/board_properties/.\n\nChange-Id: I6ca5e5f9547619fd082ddac47e87ce185da69ee6\n"
    },
    {
      "commit": "c8aec064f9f304c88f61c8c1aa3d60521b92177a",
      "tree": "5ec75a45175ced53ac8ac17f8c3322c19294119a",
      "parents": [
        "9eb6d412af6859b6c0bb969c76bbfc48eec8fd4b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Dec 02 12:23:11 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Dec 02 12:26:23 2010 -0800"
      },
      "message": "Layoutlib: update with new add/movechild API.\n\nChange-Id: I33e3a07cd7db7fe996d1f52b84b4b3bf21065a51\n"
    },
    {
      "commit": "9eb6d412af6859b6c0bb969c76bbfc48eec8fd4b",
      "tree": "99f3c5fc4823142589c4c4d809d55ff84de8d420",
      "parents": [
        "c14e7dd8ba15f517a5402ad802377b1d60784416"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Dec 01 12:28:43 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Dec 02 10:58:19 2010 -0800"
      },
      "message": "LayoutLib: Reuse canvas when possible.\n\nAlso moved the prepare/cleanupThread methods to Bridge\nas they are not really specific to the scene anymore.\n\nChange-Id: I7b93821913ce4d2fcbe3d8be489be6533ff87e57\n"
    },
    {
      "commit": "c14e7dd8ba15f517a5402ad802377b1d60784416",
      "tree": "89ec0c0628f0b3293d560f775fd87425d4e6b6c8",
      "parents": [
        "fad778754cec0b0cc7723d0ecbc78fbfe9dbb763"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Dec 01 16:03:54 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Dec 01 16:14:38 2010 -0800"
      },
      "message": "LayoutLib: implement insert/move/removeChild.\n\nChange-Id: I1c05ff4dc80e5ee4ea67d322acaf9c94276f84e1\n"
    },
    {
      "commit": "30c77d689ead610685a5e0bd4078b44eb89360ff",
      "tree": "059523ffd0a206933d0aa75e5a3f10fcda8a0aa0",
      "parents": [
        "40c01e3826771c1106517e00c5e7d3f328bc450e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Nov 29 21:10:24 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Nov 29 21:10:24 2010 -0800"
      },
      "message": "LayoutLib: get AWT image from new image factory.\n\nChange-Id: Ib760af8a77fefac2571b8b4e48b4728e158aab2f\n"
    },
    {
      "commit": "2eea6fab1cbb0a5c8f913491c2d622c904759893",
      "tree": "51b7e87bbf94d0fdb6623710a59e142e823938c2",
      "parents": [
        "7750c2ac61d933cdb50114c2fc2e0a0c558a140e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Nov 24 11:26:40 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Nov 29 12:05:43 2010 -0800"
      },
      "message": "Layoutlib: Animation support.\n\nNew locking mechanims to prevent concurrent renderings.\n\nThere\u0027s now a thread specific prepareThread() method (only\nprepares the looper) and its associated cleanupThread().\n\nFor the rendering itself, acquire must be called before doing\nany type of Android specific work on the scene (inflate or rendering)\nAfter instantiation, init() must be called, which also acts as acquire.\n\nAdded a lot of checks to make sure method aren\u0027t called without\nacquire or if scenes try to be rendered while acquire was called\nfrom the same thread but on another scene.\n\nAnimation implementation:\n- Handler delegate to use our own queue (since the animation runs\n  through handler messages). This uses a callback to process\n  the message. This callback is per-thread and only used in\n  animation threads.\n- SystemClock delegate to provide clock implementation.\n- AnimationThread to handle playing the animation and calling back\n  to the animation listener.\n\nChange-Id: Ia39aba7ed476759df1da3200e413fe3e92590d15\n"
    },
    {
      "commit": "c97e6f9f35290c078d6acfaa39c3790a327e5a17",
      "tree": "c66463fa22ef07f23f4bb1fefed6157e3f072c19",
      "parents": [
        "1d7ac9699ecd547f92b7da3d16d4ac524601ba4f",
        "ab841350f99fad48c1bdeb0f62c1713fcfcbf437"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 23 16:32:54 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 23 16:32:54 2010 -0800"
      },
      "message": "Merge \"Fix build on Linux due to different strrchr prototype.\""
    },
    {
      "commit": "ab841350f99fad48c1bdeb0f62c1713fcfcbf437",
      "tree": "04e382e28f25a296d4dacd01a72f8583d44ebfc3",
      "parents": [
        "061cf758841dfc972be3f0ec4857762fafe49aa6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 23 16:29:54 2010 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 23 16:29:54 2010 -0800"
      },
      "message": "Fix build on Linux due to different strrchr prototype.\n\nIt seems Linux host build has a fancy strrchr overload that preserves\nconstness.  That\u0027s nice but it broke this.\n\nChange-Id: I3c9b57b9ce9abc5d334d1e7b2498a3248bd20a6a\n"
    },
    {
      "commit": "42e514b0d108e1778189c3504c6e6310e1c8008d",
      "tree": "a17572ad6f00a29fb87c48c61b0ecc453f47aeec",
      "parents": [
        "9123cbfe80b37c97ae1d4412309e5fbf462d57f7",
        "061cf758841dfc972be3f0ec4857762fafe49aa6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 23 15:51:27 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 23 15:51:27 2010 -0800"
      },
      "message": "Merge \"Port Emulator keymaps.\""
    },
    {
      "commit": "061cf758841dfc972be3f0ec4857762fafe49aa6",
      "tree": "cc91f82982cc7e0c5af117b5ddc40560777b0bae",
      "parents": [
        "86e735375eb4f681ec8501e12df4730397b4331c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 18 20:52:43 2010 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 23 15:26:48 2010 -0800"
      },
      "message": "Port Emulator keymaps.\n\nAlso added a validation tool for keymaps (not currently integrated\ninto the build system but getting there).\n\nThis change brings back Android.mk with the intent that it will\nbe used to validate keymaps in a later change.\n\nAdded some missing keys that are present on phones.\n\nBug: 3215210\nBug: 3225421\nChange-Id: Id817c6e2215164616942c51a42752915d9ceacd3\n"
    },
    {
      "commit": "2d56b273ef6e2984a4e8914fb67772b173d0a154",
      "tree": "a27ae6be789d770986d019795807dfa8df0455a5",
      "parents": [
        "b43d7589cf6201fc05f4c9d8b4a0c44d7cdba81e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Nov 22 20:09:55 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Nov 23 11:54:25 2010 -0800"
      },
      "message": "Layoutlib: use default nine patch classes.\n\nMove away from using our own implementation of NinePatchDrawable.\nNow use native delegate for a few methods of NinePatch.\n\nThe byte[] used to describe the 9-patch chunk is entirely controlled\nby the delegate. Therefore, while the default version (JNI) use the\narray as a representation of a C struct, this version uses the array\nas a serialized version of NinePatchChunk.\n\nA cache mechanism using SoftReferences allows us to not deserialize\nthe array every time rendering needs to access the chunk itself.\n\nThe Bridge-level cache mechanism for bitmaps and nine-patches as\nchanged. Since the new nine-patches doesn\u0027t hold the bitmap\ndata anymore (it\u0027s stored in a normal Android bitmap which\nis cached itself through the cache), then the nine-patch cache\nhas been changed to only contain the nine patch chunk.\n\nAlso initialize the canvas with the display metrics to prepare\nfor correct scaling when density of the assets don\u0027t match the target\ndensity.\n\nStill to come: actual density support in the 9-patch drawing code.\n\nChange-Id: Ibefcccf4432e1986e8436e0c41a0107741593536\n"
    },
    {
      "commit": "7c71023b7f5aafac09bd2f0425fccb5fe2d22b27",
      "tree": "a3c86b0da5f22866d64c8d5ff61b6e0689a8453c",
      "parents": [
        "83d97c8c7ddff9374f876bef48758414a7775cb1"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Nov 22 22:28:37 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Nov 22 22:28:44 2010 -0800"
      },
      "message": "Add knowledge of mipmap to aapt\n\nNew mipmap drawable type that does not get filtered according to\nconfiguration. Useful for things that get built as part of the system.\n\nChange-Id: I556033d065e504079271dce79c23c90d3c387ce4\n"
    },
    {
      "commit": "9223b6737c56619c02125ce988bb21fc4fde264b",
      "tree": "6fe8d5691504dbe77d998e37e40350a81cb5d60d",
      "parents": [
        "7370ab5cdb03fdf58a022a047820280ee2761719"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Nov 19 15:48:17 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Nov 19 16:17:27 2010 -0800"
      },
      "message": "Layoutlib: support for editing embedded layouts.\n\nWhen Resources.getLayout(int) is called to return a parser\nfor an embedded layout, this queries the current parser for\na custom parser (Eclipse will provide one on top of the current\nXML model being edited)\n\nChange-Id: Ia9e837358f67daed0a835e1b3f4f50c0516ceee9\n"
    },
    {
      "commit": "fb25cae1916da1caf206ede879f07a4f8b61cfec",
      "tree": "b22e9c45f4d06931ca9cd2c85fc12df9e895f7b6",
      "parents": [
        "7ffd0871e6b8d7ab9443bef6e8b2a31674d1f623"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Nov 19 14:27:37 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Nov 19 14:27:37 2010 -0800"
      },
      "message": "LayoutLib: use the new expand API.\n\nChange-Id: I248de70ebe97aa6fb1cbcb5b6572a4a46c5ca1ba\n"
    },
    {
      "commit": "d73868859bf71bd98496157b94e21ef95fadd495",
      "tree": "b21fc296b932829b784b9cc12490317099f60f1d",
      "parents": [
        "7afe176a22d58dadac5785f8c4e8eaa292147825"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Nov 19 12:53:20 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Nov 19 12:53:20 2010 -0800"
      },
      "message": "LayoutLib: fix some tests\n\nChange-Id: Iacd641e2fac663ff12fe2a08ba093c4eaa2e8862\n"
    },
    {
      "commit": "55acd60be3c027c224a74290df7bedc1a80c669f",
      "tree": "cf721af3e912bc534926ba3225cfc611baaf2811",
      "parents": [
        "60899fac2bf35086b0083bfbffa2f6bf5c18f2d9"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 18 22:12:34 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 18 22:17:14 2010 -0800"
      },
      "message": "Layoutlib: support viewkey in include nodes.\n\nWhen an include tag is parsed, the custom bridge\ncode never has access to both parsers at the same\ntime.\nThe child parser is created out of an in (representing\nthe layout id), and the code inflating the content of\nthe include layout doesn\u0027t see the parent parser either.\n\nThis changeset adds a parser stack in the BridgeContext\nin order to allow access to the parent parser when setting\nthe viewkey. This is only used if the current parser depth\nis 1 (top node), as we only want to set the include\nnode to the top node of the included layout.\n\nChange-Id: I2ac3b72a0c84a269d9019f44f98cbc0b615ab959\n"
    },
    {
      "commit": "755b46d597b8e8a616d53e2a7dfea295dd78d713",
      "tree": "fa3f05456069a08badfc9d845f4e20b7617311ab",
      "parents": [
        "5a09488a158b669577cd8eb557ce4feb62929e75"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 18 19:51:30 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 18 19:51:30 2010 -0800"
      },
      "message": "Layoutlib: use int[] wrapper to use as map keys.\n\nThis fixes the SlidingDrawer that failed to load.\n\nFor some reason, in case of the SlidingDrawer, when the constructor\nuses android.R.styleable.SlidingDrawer it\u0027s the same values but not\nthe same instance as the array read from android.R through reflection.\n\nSo what works for all other widgets, and has worked since the very first\nlayoutlib isn\u0027t working anymore, and we\u0027ll now have to use a wrapper\nsimilarly to what we use in ADT in the project callback.\n\nWe should probably provide a single int[] wrapper class in layoutlib\nAPI for all to use.\n\nChange-Id: I4d7d038540f8a24541a588696f1059a020b589e5\n"
    },
    {
      "commit": "5a09488a158b669577cd8eb557ce4feb62929e75",
      "tree": "3a689ddcd6c066318991273f98f61c1db674daaf",
      "parents": [
        "3c68f2b386e5bab9b879e02ec7cdd8ff0c123235"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 18 18:24:51 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 18 18:26:55 2010 -0800"
      },
      "message": "Layoutlib: Properly dispose of bitmap delegate.\n\nThis is done by initializing the android.util.Finalizers that\u0027s\nreponsible for calling out to the native bitmap destructor.\nAlso implemented the native bitmap destructor\n\nAlso fix Bridge by removing obsolete API methods, and removing\nsome unneeded synchronized blocks now that the whole rendering\n(and scene creation) is protected by a synchronized on the bridge\nobject anyway.\n\nChange-Id: Ie1792da6db354836542dfc11f457fe4a6d78ddfb\n"
    },
    {
      "commit": "4d9e32f07c2d7aef47c82449371b0bf362e3647a",
      "tree": "2623dd2fbe8b7333b58f4f4d4d91f05e3e91adde",
      "parents": [
        "0b92c44f8ae0dc68520ce3b978640ce396cafe53"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Nov 17 18:25:43 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Nov 17 18:26:04 2010 -0800"
      },
      "message": "Layoutlib: support XML based ColorStateList.\n\nThis fixes the rendering of the TabHost in Eclipse.\n\nChange-Id: I333c4d65b18df76871e24a04f0a888ae42ba40ef\n"
    },
    {
      "commit": "9e27936e4ab227126e48c4d92a4352dad987e672",
      "tree": "c175506eac007984b25b85d8e20d76b9790bc4ce",
      "parents": [
        "cf52390eee4c9ae792ef63af1528b2e71b33a04f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Nov 12 14:20:45 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Nov 12 14:20:45 2010 -0800"
      },
      "message": "Layoutlib: Fix alpha support in Canvas/Paint.\n\nChange-Id: I359098cfc542a7a0b7d99478c0eb13587b4439d0\n"
    },
    {
      "commit": "cf52390eee4c9ae792ef63af1528b2e71b33a04f",
      "tree": "1c384883b14b8c4f93b1bea574471e83b2a33493",
      "parents": [
        "6e079a32bceb85a44da3b396f8d37e718d1421d5"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 11 18:22:45 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Nov 12 14:02:49 2010 -0800"
      },
      "message": "Layoutlib: Fill the default prop value map for View objects.\n\nChange-Id: I35426ced17a10eb092fac2153276f1202692876f\n"
    },
    {
      "commit": "135f80dcb4a1fead062714a8f6fdcef288fdddd8",
      "tree": "d9990d9b59a75453af3078900b0254f65483b707",
      "parents": [
        "a4e28d181942018ba8759989799a28fa88764ce3"
      ],
      "author": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Thu Nov 11 21:59:23 2010 -0800"
      },
      "committer": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Thu Nov 11 21:59:23 2010 -0800"
      },
      "message": "Fix fill color alpha in layoutlib\n\nnew Color(int) ignores the upper 8 bits - it creates a color without\nan alpha channel.  In order to pass in rgba we have to use a different\nconstructor, new Color(int,true).\n\n(In the layout library API we should also specify that the custom\ncolor, if specified, needs to include an alpha, or in particular add\nin 0xFF\u003c\u003c24 if the color is opaque.)\n\nChange-Id: I1c44caed8a5780e61b1c799f3b45bef3eb7bc97b\n"
    },
    {
      "commit": "071dee288ca726c7c15754c2559403b9cbf950bd",
      "tree": "656092a75556ed7910e25a41e10e9f7d4843d083",
      "parents": [
        "f917f9accf924447b3afb27d09382851003c190f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 11 14:19:29 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 11 17:39:50 2010 -0800"
      },
      "message": "Misc fix in layoutlib bridge + View.isIneditMode as delegate.\n\nChange-Id: Ideab29167e933203da99d4270cebcb777726201f\n"
    },
    {
      "commit": "c2e9651bf386a1f7bf7fc706cf5424950570470c",
      "tree": "83d204bdbe75d466a6ce82587efed8d2a03f0641",
      "parents": [
        "762b33f9494ba48aa1be3701d345b692e8432af9"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Nov 09 18:25:03 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 11 10:08:19 2010 -0800"
      },
      "message": "Layoutlib: New bridge implementation using the new API 5.\n\nSince the new API prepare for stateful layoutlib, major\nreorganization of the code.\n\nNew \"android\" sub-package for all extended android classes.\n  Also moved BridgeInflater in here so that all extended classes\n  are in this package. Only delegates and classes replacing\n  renamed classes are in their original android.* packages.\n  Also created full file for the empty implementations of\n  IWindow and IWindowSession.\nNew \"impl\" for the dirty work implementation.\nMain package contains the basic implementation of the API.\n\nMost of the code that was in Bridge is now in .impl.LayoutSceneImpl,\nwith the main init/inflate/render code split into the contrustrutor,\ninflate() and render().\n\nChange-Id: Ie15b15e5a1b2388cd6ef82e518345b1fc02ec981\n"
    },
    {
      "commit": "7f7752439543db6e13c599bdd10cb10254c24528",
      "tree": "8161d572cce9194745972fc3fde670a6c6412614",
      "parents": [
        "c9f32f23327cbeeb50f0d494d01c8d6784720bc6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 04 17:15:54 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Nov 08 18:38:12 2010 -0800"
      },
      "message": "Layoutlib: Load fragments\n\nThis change does the following:\n- Make the bridge context extend Activity instead of Context\nso that it can act as a view factory. This is needed because\nthe Activity is used as factory for Fragment objects.\n\n- Override the default Fragment.instantiate(...) method\nthrough a delegate. This is done to load the Fragment\nclasses located in the project (similar to custom views).\n\nChange-Id: If62e7c9ff2b7585677077ad825aa1c3591d1b5e0\n"
    },
    {
      "commit": "e0c763f54f5848a2513990fe37791b6f60ef7760",
      "tree": "61f4f1bd15ccb820d844c15496bb383f42c379af",
      "parents": [
        "3fe599ce21a3a28a03a2d575fdeedb7b2ac8590a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Nov 04 18:04:27 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Nov 08 16:13:28 2010 -0800"
      },
      "message": "Layoutlib: more text drawing.\n\nChange-Id: I32f46d23e746b095be0577a53b61567a868f0b8a\n"
    },
    {
      "commit": "82849afd719037968ddcb58e14cec8685f702216",
      "tree": "a16549c00299cb9ed039a2d1428c0b5561b378f1",
      "parents": [
        "a9570ab0439e7a734ef4ffc65e55dbf7f433d270",
        "3442611ee11b2987c83054fe3c7ed5521f27f052"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sat Nov 06 16:25:03 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 06 16:25:03 2010 -0700"
      },
      "message": "am 3442611e: am 5580e44c: Merge \"Support changing style parent in overlays\"\n\n* commit \u00273442611ee11b2987c83054fe3c7ed5521f27f052\u0027:\n  Support changing style parent in overlays\n"
    },
    {
      "commit": "41a4833bf2603d4194e470f783531581dd532545",
      "tree": "1cc53ac16a0c261991dce82092d571cf80caf163",
      "parents": [
        "3513c3f17f6fdbb92d1bf3be68df97708bacbc82",
        "4da6efc8a3ecfcf46a8988ad1d277ae00ed1f58c"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Sat Nov 06 16:24:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 06 16:24:28 2010 -0700"
      },
      "message": "am 4da6efc8: am 46151652: Merge \"fix xlarge support in aapt for gingerbread\" into gingerbread\n\n* commit \u00274da6efc8a3ecfcf46a8988ad1d277ae00ed1f58c\u0027:\n  fix xlarge support in aapt for gingerbread\n"
    },
    {
      "commit": "3442611ee11b2987c83054fe3c7ed5521f27f052",
      "tree": "ff4a2db0081d7c404b0c5a1bdc4ac28768272405",
      "parents": [
        "8806fc729b96bf806806ef8d82147d59abfc1536",
        "5580e44c250944f5cd011b2682eea5cc2de9706c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Nov 05 14:05:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 05 14:05:41 2010 -0700"
      },
      "message": "am 5580e44c: Merge \"Support changing style parent in overlays\"\n\n* commit \u00275580e44c250944f5cd011b2682eea5cc2de9706c\u0027:\n  Support changing style parent in overlays\n"
    },
    {
      "commit": "4da6efc8a3ecfcf46a8988ad1d277ae00ed1f58c",
      "tree": "70ac77a2300fe3d201896d3f2ec81a54ff607233",
      "parents": [
        "04856d99f8f353711f294254c1159461213684a5",
        "46151652b8dc562f4a3332e1d12fa799e3638ea8"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Nov 05 13:57:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 05 13:57:41 2010 -0700"
      },
      "message": "am 46151652: Merge \"fix xlarge support in aapt for gingerbread\" into gingerbread\n\n* commit \u002746151652b8dc562f4a3332e1d12fa799e3638ea8\u0027:\n  fix xlarge support in aapt for gingerbread\n"
    },
    {
      "commit": "d58fb97ddf052b3ceac921ac7e936af990392b2c",
      "tree": "69314556c53d6c55ddc9078854f9db0aa270142e",
      "parents": [
        "265acc5085ad03c4c043dd33faed808b55732134"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Nov 04 18:32:00 2010 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Nov 04 18:33:05 2010 -0700"
      },
      "message": "fix xlarge support in aapt for gingerbread\n\nChange-Id: I4d8872fb839a6eadc538055215d4455af328846c\n"
    },
    {
      "commit": "5580e44c250944f5cd011b2682eea5cc2de9706c",
      "tree": "e49d19666d7ad5f0f2e9e980f488b0085f163db6",
      "parents": [
        "db2403ff3251bebb5dd6bdb98f826a8e04dc6ed1",
        "2fda9f45623e888f71c6ea769305ccc4d9e76af2"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 04 07:26:37 2010 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Thu Nov 04 07:26:37 2010 -0700"
      },
      "message": "Merge \"Support changing style parent in overlays\""
    },
    {
      "commit": "9c05b3972872d83c60bf5afe1a05f08c7753cd9a",
      "tree": "fb46e02e4e3a4d04b798f59bb3511ae404b56a63",
      "parents": [
        "4b606da91d2d76dd90a427cb3e37ea7df655e8e0"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Nov 03 18:00:21 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Nov 03 19:15:07 2010 -0700"
      },
      "message": "Layoutlib native delegate: FloatMath.\n\nWhile the difference is pretty minor since it\u0027s a small class,\nthe point is that the unit test will ensure that we detect\nnew methods added to FloatMath more easily.\n\nChange-Id: Ia8bfee231cc4ae0cfeb18692be86d02649c187d5\n"
    }
  ],
  "next": "4b606da91d2d76dd90a427cb3e37ea7df655e8e0"
}
