)]}'
{
  "log": [
    {
      "commit": "3330927bdd2fedcbc8745f99d3f40929f47fdd31",
      "tree": "38afb871353c0d85b8ed1267efc02e46653fdba6",
      "parents": [
        "b1c4a2a3b37fccf68e6a9563cccf1685df2bf3e7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 19 18:51:06 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 19 18:51:06 2010 -0800"
      },
      "message": "ADT/Layoutlib: implement sweep gradient.\n\nChange-Id: I2d460decff82f5f64b0a5cfeaa68156aad4fb3e6\n"
    },
    {
      "commit": "45a7c285985976c23d818665694addbb25e02565",
      "tree": "19af466f6639bfe9d00b745b5fffdbd59e5bc7d9",
      "parents": [
        "f167c4bfca57b5467f40f6cf25e10fb12183a9f3"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 19 10:20:43 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 19 14:03:31 2010 -0800"
      },
      "message": "ADT/Layoutlib: implement radial gradient.\n\nAlso refactored some parts of LinearGradient to reuse them\nin the radial gradient\n\nChange-Id: I2ec69bd60190bd014217d989177dcc7269188dea\n"
    },
    {
      "commit": "36ab1284d8e89486cadbd55320ca965e96d65f44",
      "tree": "c44df15b1d3fd62f208eb754aa790f27fa1d73e8",
      "parents": [
        "5ac8f409f52b4b121614a8797d289f01f96c6527"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 15 11:24:44 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 15 11:24:44 2010 -0800"
      },
      "message": "ADT/Layoutlib: Add dash support to stroke.\n\nChange-Id: I09a7e84948be013cbb11f6d9774ab81df897b424\n"
    },
    {
      "commit": "5ac8f409f52b4b121614a8797d289f01f96c6527",
      "tree": "11bef17011fb08ef634e26b84aa50919d4a6ae3c",
      "parents": [
        "79f05bb4a502d5768f84cf975f791f3ba981e0e5"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 19:19:06 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 19:43:54 2010 -0800"
      },
      "message": "ADT/Layoutlib: properly handle stroke information.\n\nChange-Id: Iec9284d0e65d1313739e361d1fd5a522646fd1fd\n"
    },
    {
      "commit": "79f05bb4a502d5768f84cf975f791f3ba981e0e5",
      "tree": "17e1368ac8c06159f597e015a74c86515e07bdd9",
      "parents": [
        "89d538dcca9a4cb95682c56b0c4b85e8a77442be",
        "e8f4d7deab2c183604ea5a2344a1e2d7ff4f823a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 14 19:10:44 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 14 19:10:44 2010 -0800"
      },
      "message": "Merge \"ADT/Layoutlib: improved gradient drawing for perf.\" into eclair"
    },
    {
      "commit": "e8f4d7deab2c183604ea5a2344a1e2d7ff4f823a",
      "tree": "222820fb3b39898bf1f9dea3d5ce0dc38c68f041",
      "parents": [
        "240298f9e4542c487edd0337e84b50c493cbeecd"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 18:45:04 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 18:45:04 2010 -0800"
      },
      "message": "ADT/Layoutlib: improved gradient drawing for perf.\n\nChange-Id: I79b909d7787e4442e7cfdf196de1ac0c077da7f8\n"
    },
    {
      "commit": "89d538dcca9a4cb95682c56b0c4b85e8a77442be",
      "tree": "a5fb9a78417586bede94af8360d86692cf3064cb",
      "parents": [
        "240298f9e4542c487edd0337e84b50c493cbeecd"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 18:37:21 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 18:38:06 2010 -0800"
      },
      "message": "ADT/Layoutlib: don\u0027t draw 0-sized rectangle, AWT doesn\u0027t like that.\n\nChange-Id: I298d00208ace2421478c5864cc5a66a508b2b411\n"
    },
    {
      "commit": "2dbb923aa02e09a64fc111596a9ac9117488aa24",
      "tree": "b8169a9384a71da3f871bc8ebe8a5f8fda74d5d7",
      "parents": [
        "374abf0b95ca94d34f94edd385fb37a8d5cb123b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 17:14:05 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 17:17:25 2010 -0800"
      },
      "message": "ADT/Layoutlib: always use custom gradient (java) Paint.\n\nThe normal linear paint from AWT does not support our TileModes.\n\nChange-Id: I24667671dabdf1a5dffa342e4de9cc69487db0b6\n"
    },
    {
      "commit": "374abf0b95ca94d34f94edd385fb37a8d5cb123b",
      "tree": "60dcb0c54cac2ce1d49ddb318184bfe3e5e103df",
      "parents": [
        "5e083024269e7c5bf904301a98fa6eade6fec094"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 15:15:35 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 15:15:35 2010 -0800"
      },
      "message": "ADT/Layout: support for 3+ color in linear gradients\n\nChange-Id: I14c6a5a1de41470c6f1c66d490492ecc727302f2\n"
    },
    {
      "commit": "5e083024269e7c5bf904301a98fa6eade6fec094",
      "tree": "8235c730a57fa297d5e0ea34c83340fb1377d1d1",
      "parents": [
        "d3026e1618d893db55c2131d66b08bc4a6e7aaf4"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 10:30:16 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 10:37:13 2010 -0800"
      },
      "message": "ADT/Layoutlib: shader clean-up.\n\nChange-Id: I0a200f438b7ccde2bfc19fd23614a647cb19d312\n"
    },
    {
      "commit": "63b2e616278c1b4284e1adbcc3936d0516083dcb",
      "tree": "b68abe13e228a07126d563f1e7db2cc01352a472",
      "parents": [
        "f73bd14a8d5932b34a0e6e4d2de78b74705276b8"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 13 20:30:26 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 13 20:30:26 2010 -0800"
      },
      "message": "ADT/Layoutlib: 2 color, linear gradient support.\n\nChange-Id: Ifaafa4fc42a22f4851449a7c35a5b82e211aafe7\n"
    },
    {
      "commit": "608cd11cdcef006b3c8db966b9b113ef7b08b839",
      "tree": "677b01d405dea6ac859d2c7a6c97130a395ebb08",
      "parents": [
        "ae4bd059caa71aa4652c0f07fde7c2687169906e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 13 18:06:00 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 13 18:17:59 2010 -0800"
      },
      "message": "ADT/Layoutlib: implement Canvas.concat(Matrix)\n\nThis prevented ImageView from making proper use of ScaleType.\n\nAlso fixed Canvas.getSaveCount() that returned the wrong\nvalue and Matrix.getTransform() which used the wrong order\nfor the AffineTransform constructor!!\n\nBug: 2364564\n\nChange-Id: I78babf4aa6689440e52ad06b1473f75b20eb66da\n"
    },
    {
      "commit": "ae4bd059caa71aa4652c0f07fde7c2687169906e",
      "tree": "1fdcb26ee1a43782b61459e1ec5aca9520e845db",
      "parents": [
        "1193ae4e824c66b75083c444ce0f250594e138ee"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 13 16:43:07 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 13 16:43:07 2010 -0800"
      },
      "message": "ADT/Layoutlib: Reimplement parts of BitmapFactory\n\nThe original bitmap factory is mostly done in native and deals\nwith the normal android Bitmap class which has been replaced\nin the layoutlib by a bitmap that is merely a wrapper around\nan AWT BufferedImage.\n\nThis new BitmapFactory creates the layoutlib version of\nBitmap all in Java.\n\nChange-Id: Ice8b5d19141a9a43f83349c159201bf85604b3b0\n"
    },
    {
      "commit": "9ce3b775f55abd0ceb1d8e96968ce725f1f8bade",
      "tree": "24d0be965d60df05ba62b8ddc7d3095d76ee420f",
      "parents": [
        "595f48b2a4fa2751ad638b60d2476e77738b21da"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 11 14:28:03 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 11 14:28:03 2010 -0800"
      },
      "message": "LayoutLib: support for custom styles.\n\nChange-Id: Ic6c2ef234589f45db15024261d698066aa6e2f4e\n"
    },
    {
      "commit": "82935938fa89e6acb1181eb621cb08828cd423c8",
      "tree": "0ec6a41fe7fc3adc20ab534820e88ab647a64927",
      "parents": [
        "c20467f94afd2ac173dcb1d27f2a8fb91816edb0"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 07 08:30:16 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 07 08:57:32 2010 -0800"
      },
      "message": "Move Layoutlib API library to sdk.git\n\nChange-Id: I53f1c5d52447b6215ae7a6f2f1f82d0879e952ca\n"
    },
    {
      "commit": "a8ba3114e801282cf375c3ea2332164a52cb3813",
      "tree": "ebceb8fb644efd11a43bf7e1526186378bc9d0d4",
      "parents": [
        "b9b45a5e26ed020a39a507a173d9f29e336cf989"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 11 14:20:54 2009 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 11 14:20:54 2009 -0800"
      },
      "message": "Layoutlib: Add a constant for default density value.\n\nChange-Id: I6dc8a694bbdae2385d4e877ea04a6b4325a5719e\n"
    },
    {
      "commit": "9ddb7df88a62a131519264f75f5d6616ee11b6e6",
      "tree": "1c5d3106848a10cca9c68e164eaec788c2c7c14e",
      "parents": [
        "69e0b6646f109d17a5cff4b8c32582e3d3a3f544"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 16 17:59:32 2009 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 16 17:59:32 2009 -0800"
      },
      "message": "Fix build.\n\nChange-Id: I70c86738e2894d7f8c51034aea8fda1585a6fcb3\n"
    },
    {
      "commit": "0da2676ea841ff85b373c2960dd2c497dcf4e441",
      "tree": "0837d28b366841085dcaba8074ef8f79dc47ccf3",
      "parents": [
        "ae2104371d84570011dbb8c1621832a132ed4584"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Nov 15 16:13:01 2009 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Nov 15 16:15:33 2009 -0800"
      },
      "message": "Minor fix for the parent style computation in the layoutlib.\n\nThis is an SDK change only.\n\nChange-Id: Iae493184ae76b2e21200dd6bb48795ff74f79ab3\n"
    },
    {
      "commit": "76410f1eb316763018b7480d9cd8dc3684803576",
      "tree": "a770dc9ce917cc36307e6ed9cc20961ea2d498cd",
      "parents": [
        "27d6e65b71f515deafbd93d5aa98732898c34ddf"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Nov 13 14:10:20 2009 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Nov 13 14:10:20 2009 -0800"
      },
      "message": "Properly implement Paint.breakText for layoutlib.\n\nBUG 2260400\n\nChange-Id: I7082e366b65da0b5de2a6dbb547f66e05e0b78e0\n"
    },
    {
      "commit": "bf6956b1d95442e9d9c483894d578fe6b7044cbb",
      "tree": "dd8e921d31d3182c90eba295bea96848cb221e06",
      "parents": [
        "e6ab011b8b8aa6c461e64cabb9b25d890d68edb1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 09 15:21:13 2009 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 09 17:39:33 2009 -0800"
      },
      "message": "Add a way for wallpapers to know the delta between virtual screens.\n"
    },
    {
      "commit": "9a4593ffcce99e9f7b89b165911c2a870c27cc45",
      "tree": "36b4e3b3c613fc4e2e30f980049a879b444ae4b6",
      "parents": [
        "3f857b78fc68e5d700139bdc6078c5333b62a9bc"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Nov 08 15:15:01 2009 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Nov 09 14:55:08 2009 -0800"
      },
      "message": "Support for fallback fonts in layoutlib.\n\nBUG 2041229\n\nChange-Id: Ib12bcb7f6d8f0e4c2b51871f8129ecf51fa938ee\n"
    },
    {
      "commit": "a86f28494c526ef14c736a977d746b3e5d9ab49e",
      "tree": "5f4f30f6598ce63a6b492bc9bf93b6d684a0a059",
      "parents": [
        "65e4f6188bfc8ec3c9d1c8476953cd1beb7922bc"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Tue Nov 03 10:31:31 2009 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Tue Nov 03 10:31:31 2009 -0800"
      },
      "message": "Fix layoutlib tests so they pas when run from Eclipse workbench.\n\nBug 2222616\n"
    },
    {
      "commit": "7580493b014a2c7ea883cd291255798dc72ebbff",
      "tree": "22bffa58ac973192ea8b06ea747e1582526c1249",
      "parents": [
        "86dc4d312216be0b4c2847a1e79d94efaf4b9559"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 20 20:15:20 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 22 20:10:53 2009 -0700"
      },
      "message": "Implement feature #2117336: Create event communication APIs for live wallpaper\n\nNote: currently only implements an async version (no result), and not yet\nactually tested.\n\nChange-Id: Id47ed045a4b0eb309ea8c58daf41a0e03eff1d3a\n"
    },
    {
      "commit": "5f9d4bae03b2dfa9c1e43a6e01cacaa5a5326690",
      "tree": "b9283cdd9d1b225f404d034cfacffe313d239c64",
      "parents": [
        "0a9d46b7e741ccf7272bb69a4eef3c1f2adc91b7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 06 12:04:03 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 06 15:14:09 2009 -0700"
      },
      "message": "layout lib tests cleanup\n\n- Move test files to their own package for easy binary inclusion\n  in adt-test\n- fix some tests and remove obsolete ones.\n\nChange-Id: I5b967f29074fdad74073f9b37d903eabe8dc29e6\n"
    },
    {
      "commit": "0a9d46b7e741ccf7272bb69a4eef3c1f2adc91b7",
      "tree": "8eb811aae9d4ca1c34f882d56af66de97203461e",
      "parents": [
        "92b5caa4e21d48db6efeddba532d1546c6e686b1"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 06 09:58:08 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 06 15:13:58 2009 -0700"
      },
      "message": "Add a test to make sure the replaced classes in layoutlib are correct.\n\nChange-Id: I9641635153c12e2c0a23583f7d094767533fc683\n"
    },
    {
      "commit": "9f751ab3fc4fc4af9dc3ec226839bbf9a1b5305e",
      "tree": "a33373df8cf3ea3226cccf539629cf2ed97f6d94",
      "parents": [
        "8c739671d262c74c5743bf249180b1ba58bef4da"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 05 18:49:08 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 05 19:10:04 2009 -0700"
      },
      "message": "Reimplement all the method of Paint for layoutlib\n\nThere were a few missing methods that should have been reimplmented\n(because they were native).\n\nOthers have been added just to be sure so that we can test whether methods\nare missing or not (test coming soon).\n\nChange-Id: I24895c353e38545e9b1abe28d41224fdc78cadb1\n"
    },
    {
      "commit": "8c739671d262c74c5743bf249180b1ba58bef4da",
      "tree": "f623fc522ce9d66316255628c399c96381d65433",
      "parents": [
        "ac7391de5f32cf051678886f0d393fe0431dc6d1"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 05 15:28:33 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 05 15:36:53 2009 -0700"
      },
      "message": "Fix the layoutlib test to run from adt-tests.\n\nChange-Id: I34f513429593dce9f781ed8a08c4664a5d6f9aa8\n"
    },
    {
      "commit": "ac7391de5f32cf051678886f0d393fe0431dc6d1",
      "tree": "679f84c70031002c28be99fd7e71d1579a8fcd89",
      "parents": [
        "f7ae77cd67f1a3993b8e56c1af4720a7adf4e69d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 05 14:12:04 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 05 14:16:09 2009 -0700"
      },
      "message": "Refactor class/method names used by layoutlib_create.\n\nInformation about classes and methods that are replaced, renamed, removed\ninto CreateInfo, so that it can be used by the tests.\n\nChange-Id: I8874a40503249416621aa90b2ca02dcaf30ecd57\n"
    },
    {
      "commit": "f18ccc13a663fe385ecdfbdfd55ef503d48833f5",
      "tree": "32a2eb1f0fbd1420eea722e150c8fd1cfda9bbfe",
      "parents": [
        "41c64ba73cf4dbc14beeaaa618afdd908da8b0cb"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Sep 28 12:57:42 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Sep 28 12:59:33 2009 -0700"
      },
      "message": "Fix a warning output.\n\nThis was introduced by the dpi work.\n\nChange-Id: I7c7b1596085f70532b8279139c287a2a58f57046\n"
    },
    {
      "commit": "ffa424800d0338b8b894aef2ea1e3e3344cbda7a",
      "tree": "93a2e14b145042fe8fdd9fccef26303c55341272",
      "parents": [
        "f11cc96ee837f8b0d530f3a5dd78ffc358727411"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 23 22:20:11 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 23 23:17:07 2009 -0700"
      },
      "message": "Fix issue #2133206: dialogs/menus should auto-dismiss when screen turns off\n\nLot of infrastructure for more things to go away when \"clear system dialogs\"\nhappens, and now do this when we turn on the lock screen.\n\nChange-Id: I567130296fe47ce82df065ed58ef21b37416ceaf\n"
    },
    {
      "commit": "56a92e3ba0d7da310b4c6e09f54dee10f1f395bb",
      "tree": "bba9ee0477759921a28f95fc4bc29191c1bc5335",
      "parents": [
        "311ed0191d6423e41b1cf5137a38e53504494818"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 23 10:39:50 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 23 16:38:57 2009 -0700"
      },
      "message": "Add density support to layoutlib so that bitmap are scaled if needed.\n\nChange-Id: I00204bb136ccaa44deeafbe0ea8746fea9903341\n"
    },
    {
      "commit": "de0dfb7b65a02d4dd74c271b558adee0973fc267",
      "tree": "c2e701a78f831978378ff3a9c219209aae3e4fc2",
      "parents": [
        "5dd7c726f45fd7b7ab473471dc504c00012a6856"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 23 14:09:34 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 23 14:26:02 2009 -0700"
      },
      "message": "Fix issue #2125720 Weather Forecast Widget - graphics do not scale\n\nI forgot to add the new density field to the Bitmaps\u0027 parcelable data.\n\nChange-Id: I77cf3e93e356297e0caed6fc71b62b5cd8f79124\n"
    },
    {
      "commit": "39cd36ec1fed5f370983dbd8933acc5e779003c6",
      "tree": "e63b1a3b9c248f3eca65d26a60dc6fb541793fef",
      "parents": [
        "32f76f34075450c03c68fc1f65e395d5eddd6d51"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 22 21:00:12 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 22 21:00:12 2009 -0700"
      },
      "message": "Add density value to density enum.\n\nThis is going to be used as constant to both ADT classes and the\nlayoutlib.\n\nChange-Id: Id9befe83c5c2be3fbc5f045c7ed21aa8ee0108cc\n"
    },
    {
      "commit": "ccb630df4bb32ef93c55ad32859849a08b840288",
      "tree": "95fda8bb19deb7f6eb41291f9eeb9e2b6fff4478",
      "parents": [
        "63147705bc2893d6ad43270e04beb9ee01e2ad53"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 22 18:30:22 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 22 18:30:22 2009 -0700"
      },
      "message": "Add a new IResourceValue that knows about the density.\n\nThis will allow the layoutlib to resize bitmaps that are\nnot in the native density of the rendering.\n\nChange-Id: If9dca6d51cd93a2083c96fce3ac64335ec6ad801\n"
    },
    {
      "commit": "efa199f016985b0a9d0471e42c803ee9f7941f0e",
      "tree": "0320870eeb2ca842a3729eb0f72220037ea89f82",
      "parents": [
        "338c48554f35dbee3faa4e39525a972f20a7c32d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 19 12:03:15 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 19 12:05:25 2009 -0700"
      },
      "message": "Add API to send an ordered sticky broadcast.\n\nChange-Id: Ida7081204e226db0cd07ff618c08e308a909ec0c\n"
    },
    {
      "commit": "fa82f22f1d8c4c828bdf9b670006be4f4fec772e",
      "tree": "586dbd1bf9cbefe26cfecd6cf853b78eb6a4fb64",
      "parents": [
        "9b64ef133c1eb24c8d00aa7e46ec86c544af5fe2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 17 15:14:12 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 17 18:01:35 2009 -0700"
      },
      "message": "Fix issue #2093608: Calendar widget takes a few seconds to launch\n\nAvert your eyes!\n\nThe key change here is that RemoteViews can now call a Context API to\nstart its pending intent, which inside of the activity manager we can\nuse to determine to cancel the timeout delay for external entities\nto disrupt the home screen.\n\nChange-Id: If097cf7478cbed7a3c04a304050bd7fd5703d197\n"
    },
    {
      "commit": "d023f9a9a90705410250cd86bc6446c738423a99",
      "tree": "7ed7ccf3847d48af6e692813cdcc5e5838a53c8b",
      "parents": [
        "aa931bcb0acb93ce760f4e5d27153fb1c6d33a10",
        "19382ac1a4e4e7c23a1346d299368763f149de9c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 18:45:42 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 18:45:42 2009 -0400"
      },
      "message": "Merge change 24829 into eclair\n\n* changes:\n  Some optizations to wallpaper drawing/scrolling.\n"
    },
    {
      "commit": "19382ac1a4e4e7c23a1346d299368763f149de9c",
      "tree": "9165f1b94f1bd5e9966729b1047d03a733570867",
      "parents": [
        "714ec1360cde8b1cbf6e6b8572256e4100f11560"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 11 21:13:37 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 14 15:29:44 2009 -0700"
      },
      "message": "Some optizations to wallpaper drawing/scrolling.\n\nFirst, fix some issues with the final wallpaper bitmap\nwe use: ensure it is always 16bpp, and make sure dithering\nof its bitmap is turned off.   We take of dithering\nwhen loading, to make sure we don\u0027t use it when drawing.\n\nAlso add new APIs to return the wallpaper with the equivalent\nof Launcher\u0027s old FastBitmapDrawable.  As doing this, also load\nthe default wallpaper the same way as custom ones, taking care to\nresize it as needed at load time.\n\nFinally implement a mechanism for the window manager to wait\nfor the wallpaper to redraw at its new position before returning\nfrom the application\u0027s call to change the offset.  This ensures\nthat the wallpaper better tracks the application.  Note that there\nis a timeout in this wait that is relatively short, and if it\nexpires we will run for a while without waiting.\n\nChange-Id: Ife449437746da85958bd447e0a6cf3d2223b398c\n"
    },
    {
      "commit": "7a79628cd9b5149a7b38b90bf6cef9ea67cfbc21",
      "tree": "55e5a2a501a46f3fee9da2471ecb1963b4b229d0",
      "parents": [
        "466dbbfd4595d714127a4bc92dd9235807b88be6"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Mon Sep 14 11:17:49 2009 -0700"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Mon Sep 14 11:17:49 2009 -0700"
      },
      "message": "Fix some LayoutBridge javadoc.\n\nChange-Id: I255d1d58d3537403ac9a8a5c7adece30ae989ce0\n"
    },
    {
      "commit": "ad013fae0db2864ad13631a44d26bacafc36f861",
      "tree": "1de6842cd122e5786a396331b53b1954ee4f0b17",
      "parents": [
        "3be63c09309b21c01b535271625d4c39045690e5"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Aug 21 12:55:59 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Aug 21 12:55:59 2009 -0700"
      },
      "message": "Replace fullHeight support by fullSize (height and width)\n\nThis is useful for linearlayout in horizontal mode.\n"
    },
    {
      "commit": "d604ad1ad442790af53847d24060ecb097106d26",
      "tree": "0b75fae936dcbb683367b50ab962838c9f0960d5",
      "parents": [
        "58b6d1be26bd015b0da9336e82a83fd2cf303d2a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 20 14:29:56 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 20 15:15:35 2009 -0700"
      },
      "message": "Support full length rendering.\n\nNew rendering method in ILayoutBridge to specify whether the rendering\nheight should be the specified height or if it should be the height\nrequired by the layout (specified height is always the minimum).\n"
    },
    {
      "commit": "f369b7199f537bba7d8fced8b0f826249d19fdf5",
      "tree": "a543928728c1ab8d9a71db8496d19e113aa8637e",
      "parents": [
        "d97bcef6e4d2a4bacf335f412488c72e38d590e6",
        "ad4bc607bd236dd9b06df9cf89dc5e14541ff66c"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 18 13:42:09 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 18 13:42:09 2009 -0700"
      },
      "message": "am ad4bc607: Merge change 21772 into donut\n\nMerge commit \u0027ad4bc607bd236dd9b06df9cf89dc5e14541ff66c\u0027 into eclair\n\n* commit \u0027ad4bc607bd236dd9b06df9cf89dc5e14541ff66c\u0027:\n  Fix Resources#opeRawResource(int, TypedValue) in layoutlib.\n"
    },
    {
      "commit": "72e4bcd3d0da90f6c9550c93e58c12b2903a5ab8",
      "tree": "bffd42883e1f457bcd8d502aa6e4f64538211b62",
      "parents": [
        "238f8fe645271a0ef891553e1c8c3c964c3c876d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 18 13:35:55 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 18 13:35:55 2009 -0700"
      },
      "message": "Fix Resources#opeRawResource(int, TypedValue) in layoutlib.\n"
    },
    {
      "commit": "f7064e18fbafa6091a7e5f604978331135bcf4b6",
      "tree": "41750f95388e320185a6314582b5b1522d0397ac",
      "parents": [
        "ef99e248fe5f556bbd216d3ac669391b83ab5ebb",
        "ace6a5cfc0d14a909b4b95bdfe16609188125baf"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 18 11:01:19 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 18 11:01:19 2009 -0700"
      },
      "message": "am ace6a5cf: Merge change 21408 into donut\n\nMerge commit \u0027ace6a5cfc0d14a909b4b95bdfe16609188125baf\u0027 into eclair\n\n* commit \u0027ace6a5cfc0d14a909b4b95bdfe16609188125baf\u0027:\n  Improved drawing/matrix support in layoutlib\n"
    },
    {
      "commit": "1a8c1599de630ae4199b71cb3eca75d7db9c40d6",
      "tree": "5508bab41808c7f7ef40df92d34feb7e3dbd79eb",
      "parents": [
        "0deb41abc68ff05b6c2e06175982f9d22a5abd92",
        "c1c432f57b782ed9d8d65be7ea1bee1e1d7d7839"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 18 08:44:59 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 18 08:44:59 2009 -0700"
      },
      "message": "am c1c432f5: Merge change 21241 into donut\n\nMerge commit \u0027c1c432f57b782ed9d8d65be7ea1bee1e1d7d7839\u0027 into eclair\n\n* commit \u0027c1c432f57b782ed9d8d65be7ea1bee1e1d7d7839\u0027:\n  Layoutlib now uses the dimen status_bar_height instead of hard-coded value\n"
    },
    {
      "commit": "8df8b2b405c60cacf7a66c4e2ca078dd3d7ec7bd",
      "tree": "302a410dcd7af7bbf61f435cd96dd8b7384def2e",
      "parents": [
        "948ee251276e1ce7f5c5517b24bf88a75e99f160"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 17 15:15:18 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 17 21:23:05 2009 -0700"
      },
      "message": "Allow wallpapers to get touch events.\n"
    },
    {
      "commit": "2473ef5654b2a4b65132a35677c6ddfd481aab2c",
      "tree": "98ff9700a5a8854c139b7b27413c2208d21c7b34",
      "parents": [
        "75c498426a17b47d445711bb9e36794b05876a56"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Aug 14 20:47:50 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Aug 17 14:17:05 2009 -0700"
      },
      "message": "Improved drawing/matrix support in layoutlib\n\n- Make the custom Canvas actually replace the original one so that it\u0027s used\n  even by parts of the framework that allocate their own temp Canvas object.\n- Better support for Matrix: added support for mapPoint() and mapRect(), and invert()\n- Implemented drawBitmap() with a Matrix, and made the paint object not NPE when null.\n"
    },
    {
      "commit": "09701011bc489f117d88f2c0ed406120eb4562ab",
      "tree": "ece832afd6f93560075425efd389668a8ce5c949",
      "parents": [
        "ba52b3e08b33592457242944f7a89691a5b94880"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 13 21:48:03 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 13 21:48:03 2009 -0700"
      },
      "message": "Layoutlib now uses the dimen status_bar_height instead of hard-coded value\n\nBUG: 2053956\n"
    },
    {
      "commit": "1d47a5142682c1f9f9a04fdbe1ec863fd5550c30",
      "tree": "3ec905ee0c52307804984f2ebf1e55c01341ba91",
      "parents": [
        "314e0226a26cd79b5080dcb76d566fa6f83ff695",
        "94ff3f1f08805b68c5524b39024968aebcdc83ee"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 13 18:43:54 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 13 18:43:54 2009 -0700"
      },
      "message": "am 94ff3f1f: Merge change 21063 into donut\n\nMerge commit \u002794ff3f1f08805b68c5524b39024968aebcdc83ee\u0027 into eclair\n\n* commit \u002794ff3f1f08805b68c5524b39024968aebcdc83ee\u0027:\n  Fix handling of reference XML file in layout files\n"
    },
    {
      "commit": "314e0226a26cd79b5080dcb76d566fa6f83ff695",
      "tree": "9a3ee9274543eb2449825fbd2112afa4c2614434",
      "parents": [
        "f233915016a9053c23af6e4bceb319e7140f71bc",
        "e1b63d224a0a68191f087186c470cde317e3fa76"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 13 18:43:46 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 13 18:43:46 2009 -0700"
      },
      "message": "am e1b63d22: Merge change 21033 into donut\n\nMerge commit \u0027e1b63d224a0a68191f087186c470cde317e3fa76\u0027 into eclair\n\n* commit \u0027e1b63d224a0a68191f087186c470cde317e3fa76\u0027:\n  Mock ServiceManager and AccesibilityManager to make the view renders in ADT\n"
    },
    {
      "commit": "08e2a4b56f23ce02f17300438f76ccc1f663f183",
      "tree": "4a455cba60cf1df27997707331c9e16bd456ce7e",
      "parents": [
        "7953e7d89b1d4d7297176fbb6aeea882577df8e6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 12 21:47:11 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 13 11:23:40 2009 -0700"
      },
      "message": "Fix handling of reference XML file in layout files\n\nThis allows layout that references animation to properly load\nin the layout editor in ADT\n"
    },
    {
      "commit": "385df699a6d602cab501092821a79cc6ab3a390e",
      "tree": "06e4c6f8f129c9350a8798d9e41f7384c8b5f4f5",
      "parents": [
        "25660ec2c8175559d86d50bc2bfdef29589d0813"
      ],
      "author": {
        "name": "Andrei Popescu",
        "email": "andreip@google.com",
        "time": "Thu Aug 13 11:59:57 2009 +0100"
      },
      "committer": {
        "name": "Andrei Popescu",
        "email": "andreip@google.com",
        "time": "Thu Aug 13 13:07:48 2009 +0100"
      },
      "message": "remove Gears\n"
    },
    {
      "commit": "7953e7d89b1d4d7297176fbb6aeea882577df8e6",
      "tree": "f7a4e9a4338fa276ec827e5fc7f519ae16877957",
      "parents": [
        "fe6e733a01b1ab8a6c7b651c65bf7abeb97f9525"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 12 17:20:18 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 12 17:20:18 2009 -0700"
      },
      "message": "Mock ServiceManager and AccesibilityManager to make the view renders in ADT\n\nBUG: 2049348\n"
    },
    {
      "commit": "72c82ab9923025a91bbabb32e56bfea27bfd083b",
      "tree": "2a97f8a85bc5f23c13e3f7a6476533bec88c81a7",
      "parents": [
        "a5f743f1fc7c5037ee7ad4ab611115b6d44af5b8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 11 21:13:54 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 12 14:41:29 2009 -0700"
      },
      "message": "Report wallpaper offset to the wallpaper, use this in the image wallpaper.\n\nWallpapers can now be just the size of the screen, and get told when their\nscroll position should change to do the updating on their own.\n"
    },
    {
      "commit": "c8a0a75e1c61d1ab24bd46a8243041c107e738ac",
      "tree": "2fb0685253fe71e77f91e0ca7259c83a2b91cae8",
      "parents": [
        "2ce89adde442fac551413362ea442caa088c25e4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 10 23:05:49 2009 -0700"
      },
      "committer": {
        "name": "Cary Clark",
        "email": "cary@android.com",
        "time": "Tue Aug 11 10:03:16 2009 -0400"
      },
      "message": "Implement support for scrolling a wallpaper.\n\nThis currently only works for a wallpaper that is larger than the\nscreen.  Set the scroll position with the new wallpaper API.  Right\nnow only does jump scrolls.\n"
    },
    {
      "commit": "eba337ad09ba93b31f4e9ec8f99be3ae2811bf89",
      "tree": "4901a790301de9d194aeeb55dc79e435fe375e04",
      "parents": [
        "98a44df4b4cc8cd28276ad888a7e17f81353ae44"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jul 22 15:44:52 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jul 22 15:44:52 2009 -0700"
      },
      "message": "Reimplement TypedArray.getLayoutDimension(int, int) for the layout bridge.\n"
    },
    {
      "commit": "a53b828635fce8b6b2d3e3377d74d72070056623",
      "tree": "42f4ba9bbf7d8656a4761d6fe5dcd4976cf19369",
      "parents": [
        "09a903ab5b8d940605783ae4ee591c0f090a31d1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 17 11:13:48 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 17 16:59:08 2009 -0700"
      },
      "message": "Add \"nodpi\" density, and expose a bunch of density-related APIs.\n\nAlso update the DpiTest app to use nodpi images, and try to have a mode\nwhere it turns off compatibility though it\u0027s not quite working.\n"
    },
    {
      "commit": "723738cfaec3dd7b0fe152c872c41bebf94074c4",
      "tree": "421ddeed166d0a4586c9460c4de581307bf08d44",
      "parents": [
        "77cb40a0b088b02357fbc7d5fad24886d607f0da"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 25 19:48:04 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 26 13:37:05 2009 -0700"
      },
      "message": "Expand support for different screen sizes.\n\nApplications can now declare that they support small, normal, or\nlarge screens.  Resource selection can also be done based on these\nsizes.  By default, pre-Donut apps are false for small and large,\nand Donut or later apps are assumed to support all sizes.  In either\ncase they can use \u003csupports-screens\u003e in their manifest to declare\nwhat they actually support.\n"
    },
    {
      "commit": "63e7155c7d1d0c3f0027400aa09e9a45f648a80d",
      "tree": "1f3bf9743613460533de9df78f2c8c5cd65cf070",
      "parents": [
        "5502f04c1dcf2b1918858bacb99fb0480a711707",
        "5c1e00b14d2ef10ec76abf3e951fa8003a67f558"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:33:33 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:33:33 2009 -0700"
      },
      "message": "Merge change 4696 into donut\n\n* changes:\n  Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.\n"
    },
    {
      "commit": "5c1e00b14d2ef10ec76abf3e951fa8003a67f558",
      "tree": "fa723a6f96f5b977dfdfdc08b5b8aab98c20d500",
      "parents": [
        "e748161ca89867e8c57d4e71c780486d4de8039c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 18 17:10:57 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 18 17:10:57 2009 -0700"
      },
      "message": "Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.\n\n- Fix a bug where targetSdkVersion could not be set if minSdkVersion.  Stupid, stupid.\n  Also make sure to fail if minSdkVersion is for a code name.  Really stupid.\n\n- Change the API for resize compatibility mode to be a bit in the flags field, instead\n  of a separate boolean.\n\n- Implement delayed dexopting, to avoid the looong full dexopt during boot.  This is\n  only enabled for \"eng\" builds.  When in this mode, the activity manager will make\n  sure that a dexopt has been done before loading an .apk into a process, and will\n  try to avoid displaying ANRs if they are due to the dexopt causing some operation\n  to take longer than it normally would (though I make no guarantees about this\n  totally working).\n\n- Add API to Context to get the ApplicationInfo for its package, for easy access to\n  things like targetSdkVersion.\n"
    },
    {
      "commit": "83189c985a0e617ba7856343ea8b7080c37396a7",
      "tree": "742d1fe9128b3e2f9c8a49c571055fcb03ff5302",
      "parents": [
        "5553f1528e94377ae5adf423e91331f5eb57dd44"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jun 17 17:20:00 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 18 11:56:36 2009 -0700"
      },
      "message": "Connect TabHost/TabWidget/FrameLayout in the layout editor.\n\nBasically this does automatically what the developer has to do in his/her\nactivity so that the TabHost gets tabs that connects the TabWidgets and the\ncontent of the FrameLayout.\n"
    },
    {
      "commit": "23ecae3bbb60c5af940f3a22170d75eb6ac05b69",
      "tree": "1138102ba856743cffd931121409a71c2bae37c3",
      "parents": [
        "0b77453076a22569f24318d194b378b68f11a63e"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 10 17:07:15 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 11 11:29:57 2009 -0700"
      },
      "message": "Fix SharedPrefsBackupHelper so it doesn\u0027t hard code the paths to the files.\n\nThis took quite a bit of refactoring.\n"
    },
    {
      "commit": "1741ec39a90b95fff215a005b6b3941d7c1b4735",
      "tree": "51e421f6225e238f57afd25de495974a7d2b7680",
      "parents": [
        "7ebda6f110708bdb704f8700a6b3473249b12baf"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jun 05 12:55:14 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jun 05 12:58:29 2009 -0700"
      },
      "message": "Fix external bug 2875: Matrix#mValues[7] assigned twice in place of mValues[8]\n"
    },
    {
      "commit": "9189cabb0b6c6c28232fe6f412b7ba7a37352a6a",
      "tree": "6ddc6a8eb0158cba32cc6139b04c6b6eb9f0ba5f",
      "parents": [
        "eaeb663bcd7a82b654954b42663232cbd7bef7e7"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jun 03 11:19:12 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jun 03 16:28:10 2009 -0700"
      },
      "message": "* Moved supports-density tag under manifest\n* Refactored Compatibility code\n  * Added CompatibilityInfo class\n  * Removed getApplicationScale from Context\n  * Added Resources#getCompatibilityInfo so that RootView can get the compatibility info w/o going through Context\n* Expandable support\n  * Added expandable tag under manifest\n  * Old application w/o expandable is given the default screen size  ([320, 480] x density).\n  * The non-expandable window is centered.\n"
    },
    {
      "commit": "231cc608d06ffc31c24bf8aa8c8275bdd2636581",
      "tree": "9b435c670f0f16751a21ae4678bfbed7d8e159b4",
      "parents": [
        "06d96020c35dac2bf1651cb8bd4cfced911f1142"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 27 17:10:36 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 05 15:40:53 2009 -0700"
      },
      "message": "Rewrite SyncStorageEngine to use flat files and in-memory data structures.\n\nThe previous implementation used a database for storing all of its state, which could cause\na significant amount of IO activity as its tables were updated through the stages of a sync.\nThis new implementation replaces that in-memory data structures, with hand-written code\nfor writing them to persistent storage.\n\nThere are now 4 files associated with this class, holding various pieces of its state that\nshould be consistent.  These are everything from a main XML file of account information that\nmust always be retained, to a binary file of per-day statistics that can be thrown away at\nany time.  Writes of these files as scheduled at various times based on their importance of\nthe frequency at which they change.\n\nBecause the database no longer exists, there needs to be a new explicit interface for\ninteracting with the sync manager database.  This is provided by new APIs on IContentService,\nwith a hidden method on ContentResolver to retrieve the IContentService so that various\nsystem entities can use it.  Other changes in other projects are required to update to the\nnew API.\n\nThe goal here is to have as little an impact on the code and functionality outside of\nSyncStorageEngine, though due to the necessary change in API it is still somewhat extensive.\n"
    },
    {
      "commit": "33fbd3bee0d2160c79ffca246c6999e10a663aa2",
      "tree": "2bfbc243840e8ede323eebccacabc0be7ff681de",
      "parents": [
        "636274185ed5ee75faf6ef4d84bbb7d5b0371248"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Tue May 05 12:38:33 2009 -0700"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Tue May 05 12:39:28 2009 -0700"
      },
      "message": "Ignore layout bin directories in git.\n"
    },
    {
      "commit": "13735a255dedd2c2e3b0cff66f0be2e17671f553",
      "tree": "9b55fcc3089076210763f62acf89563ed71a720b",
      "parents": [
        "d30605200b8b0f10e4740a9d7266d240023e69cd",
        "8169daed2f7a8731d478b884b1f455c747b88478"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "",
        "time": "Tue Apr 28 18:13:25 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Apr 28 18:13:25 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-donut\u0027 into donut\n"
    },
    {
      "commit": "8169daed2f7a8731d478b884b1f455c747b88478",
      "tree": "3ab1f44b128cef2f18f470af7483a8405329da23",
      "parents": [
        "8d112675879a2b83197d3b4ae4fb623abd1a1ec3"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "",
        "time": "Tue Apr 28 18:12:09 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Apr 28 18:12:09 2009 -0700"
      },
      "message": "AI 147976: Compatibility mode support. Part 2.\n  * Introduced ApplicationScale (may not be good name. CompatibilityScale? CanvasScale? Pls let me know if you have better idea)\n  * Changes to RootView / SurfaceView\n  - Makes the app believe it\u0027s running in the supported density/resolution.\n  - Makes the window manager believe it\u0027s running at the right density/resolution.\n  * Added methods to Rect/Event for scaling up/down.\n  Known issues:\n  * certain kind of images (such as nine patch for buttons) seesm to be loaded not by app, thus does not take the scale into account,\n  which, in turn, is causing layout issue.\n  * ZoomButton in MapView is rendered in wrong place\n  * Transparent region on Surface is not correct\n  * Specifying different densities in one process is not working.\n  BUG\u003d1770627\n\nAutomated import of CL 147976\n"
    },
    {
      "commit": "d4943a9a7b7d1538695a02896f211bafe09571ba",
      "tree": "fcda5c4d53893286ee689ef04e5fc579ec1b331d",
      "parents": [
        "9e8ca9a19c8625b22f37c2f8c0ac841d1f10d25a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Apr 24 17:01:56 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Apr 24 17:01:56 2009 -0700"
      },
      "message": "Add file to ignore the content of the layoutlib/Bridge Eclipe bin folder.\n"
    },
    {
      "commit": "e30661294bc590a11eef678bdf92c1dff75c36f9",
      "tree": "9e8058a084922d8bd7fb259aa0d50efb165fafae",
      "parents": [
        "2fd2f6e5c689a87f790f581521f5335ebcda2450"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "",
        "time": "Thu Apr 16 12:44:37 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 16 12:44:37 2009 -0700"
      },
      "message": "AI 146485: am: CL 146411 Fix BridgeCanvas#drawRoundRect\n  Original author: xav\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 146485\n"
    },
    {
      "commit": "105925376f8d0f6b318c9938c7b83ef7fef094da",
      "tree": "3b19ee2bd8704cb9c6a0da7e42dec6759183de6d",
      "parents": [
        "ba87e3e6c985e7175152993b5efcc7dd2f0e1c93"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 18 17:39:46 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 18 17:39:46 2009 -0700"
      },
      "message": "auto import from //branches/cupcake_rel/...@140373\n"
    },
    {
      "commit": "4df2423a947bcd3f024cc3d3a1a315a8dc428598",
      "tree": "e7dac2c5a367b169e7f05a36058cf470e93f003b",
      "parents": [
        "c474dec3ffa1c0fe37edb3e701684188f7e8e7bc"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 05 14:34:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 05 14:34:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@136594\n"
    },
    {
      "commit": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "076357b8567458d4b6dfdcf839ef751634cd2bfb",
      "tree": "efbb2fd6f1dc67d2d606382fc3b82983e7cb2e1f",
      "parents": [
        "3dec7d563a2f3e1eb967ce2054a00b6620e3558c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 14:04:24 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 14:04:24 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@132589\n"
    },
    {
      "commit": "3dec7d563a2f3e1eb967ce2054a00b6620e3558c",
      "tree": "aa3b0365c47cb3c1607c0dc76c8d32b4046fc287",
      "parents": [
        "15ab3eae2ec3d73b3e8aa60b33ae41445bf83f4b"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 02 22:54:33 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 02 22:54:33 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@137055\n"
    },
    {
      "commit": "da996f390e17e16f2dfa60e972e7ebc4f868f37e",
      "tree": "00a0f15270d4c7b619fd34d8383257e1761082f4",
      "parents": [
        "d24b8183b93e781080b2c16c487e60d51c12da31"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:50 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:50 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@131421\n"
    },
    {
      "commit": "d24b8183b93e781080b2c16c487e60d51c12da31",
      "tree": "fbb89154858984eb8e41556da7e9433040d55cd4",
      "parents": [
        "f1e484acb594a726fb57ad0ae4cfe902c7f35858"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@130745\n"
    },
    {
      "commit": "b798689749c64baba81f02e10cf2157c747d6b46",
      "tree": "da394a395ddb1a6cf69193314846b03fe47a397e",
      "parents": [
        "f013e1afd1e68af5e3b868c26a653bbfb39538f8"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@125939\n"
    },
    {
      "commit": "f013e1afd1e68af5e3b868c26a653bbfb39538f8",
      "tree": "7ad6c8fd9c7b55f4b4017171dec1cb760bbd26bf",
      "parents": [
        "e70cfafe580c6f2994c4827cd8a534aabf3eb05c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "54b6cfa9a9e5b861a9930af873580d6dc20f773c",
      "tree": "35051494d2af230dce54d6b31c6af8fc24091316",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
