)]}'
{
  "log": [
    {
      "commit": "80e62ac61c297452c003919f71c4dcd7063d1b43",
      "tree": "c52a239cc44e248ef0543b69289ade2cc64ca80b",
      "parents": [
        "7203272f35e40bf9d4b76f1b2f9b0077738df118"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jul 16 16:46:39 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 19 10:19:49 2010 -0700"
      },
      "message": "Fix the layoutlib Paint.set(Paint) method. Do not merge.\n\nIt would change the text rendering info but not recompute\nthe Java Font objects. The effect is a broken font rendering\nin the EditText (which use this method to copy some Paint\nobject before using the copy for the actual drawing)\n\nChange-Id: I9e7fbf9bd57b421fd793876a6de4ade1ecac372d\n"
    },
    {
      "commit": "80a60ba85b5c2ed40e8685a16ce6d3ed31ef0929",
      "tree": "c0607756e614e65e8a818a65996d25ec4128f402",
      "parents": [
        "aa1933ac4cb135be5469db275af7a758cdfdf744"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jul 14 19:58:30 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jul 14 19:58:30 2010 -0700"
      },
      "message": "Clean up some style in the makefiles.\n\nChange-Id: I993702808395f37c2e9d3c7e457d2952be51d795\n"
    },
    {
      "commit": "45378f07b8c0d79fe56fc75ad25738f8750e88c8",
      "tree": "f613b09c9cff0d6ebab45d9173aa7832ec3b065d",
      "parents": [
        "42a18c09e7bb9c372382e88053409c25563ae7c9",
        "6b22d81aa35d9a9b32670995c002e92588b2fe09"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Thu Jun 17 12:36:17 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 17 12:36:17 2010 -0700"
      },
      "message": "am 6b22d81a: As Donut (API\u003d4) devices and earlier do not have a Bluetooth API, .apk files that have minSdkLevel (or targetSdkLevel) set to 4 or lower should not be presumed to require Bluetooth just because they take the permission.\n\nMerge commit \u00276b22d81aa35d9a9b32670995c002e92588b2fe09\u0027 into gingerbread\n\n* commit \u00276b22d81aa35d9a9b32670995c002e92588b2fe09\u0027:\n  As Donut (API\u003d4) devices and earlier do not have a Bluetooth API, .apk files\n"
    },
    {
      "commit": "6b22d81aa35d9a9b32670995c002e92588b2fe09",
      "tree": "022af27d83c23fabe4f594b5e4b58ab5e936a5d2",
      "parents": [
        "cdeae439a3637062dc0701654a1cb7874bfd1ae8"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Tue Jun 15 21:41:42 2010 -0700"
      },
      "committer": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Tue Jun 15 21:57:33 2010 -0700"
      },
      "message": "As Donut (API\u003d4) devices and earlier do not have a Bluetooth API, .apk files\nthat have minSdkLevel (or targetSdkLevel) set to 4 or lower should not be\npresumed to require Bluetooth just because they take the permission.\n\nChange-Id: Ia629e9ef0425a577e4e14f9b348f5aa2b39c1e74\n"
    },
    {
      "commit": "9a5fcd1c14dcea951099433885ed3519dee90f48",
      "tree": "51c6cfeb863c4a410b63d2bfcb58944a478b2e6b",
      "parents": [
        "ac8b0d47011293ef713f4996317bbda579354200",
        "9d71860e8cbaf16ddae3cd5d06ede8e6cfc7675a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Jun 15 15:21:14 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 15 15:21:14 2010 -0700"
      },
      "message": "am 9d71860e: Merge \"The aapt and aidl tools are prebuilt when we\\\u0027re doing an apps-only build, so don\\\u0027t try to build them.\" into froyo\n\nMerge commit \u00279d71860e8cbaf16ddae3cd5d06ede8e6cfc7675a\u0027 into gingerbread\n\n* commit \u00279d71860e8cbaf16ddae3cd5d06ede8e6cfc7675a\u0027:\n  The aapt and aidl tools are prebuilt when we\u0027re doing an apps-only build, so don\u0027t try to build them.\n"
    },
    {
      "commit": "46b9ac0ae2162309774a7478cd9d4e578747bfc2",
      "tree": "46ad021a41e25ca9f1250b709a29b724dc6b504d",
      "parents": [
        "f62c57d684b83df7d2817db976c0afdb500ae92a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 22 18:58:52 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 13 17:42:16 2010 -0700"
      },
      "message": "Native input dispatch rewrite work in progress.\n\nThe old dispatch mechanism has been left in place and continues to\nbe used by default for now.  To enable native input dispatch,\nedit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.\n\nIncludes part of the new input event NDK API.  Some details TBD.\n\nTo wire up input dispatch, as the ViewRoot adds a window to the\nwindow session it receives an InputChannel object as an output\nargument.  The InputChannel encapsulates the file descriptors for a\nshared memory region and two pipe end-points.  The ViewRoot then\nprovides the InputChannel to the InputQueue.  Behind the\nscenes, InputQueue simply attaches handlers to the native PollLoop object\nthat underlies the MessageQueue.  This way MessageQueue doesn\u0027t need\nto know anything about input dispatch per-se, it just exposes (in native\ncode) a PollLoop that other components can use to monitor file descriptor\nstate changes.\n\nThere can be zero or more targets for any given input event.  Each\ninput target is specified by its input channel and some parameters\nincluding flags, an X/Y coordinate offset, and the dispatch timeout.\nAn input target can request either synchronous dispatch (for foreground apps)\nor asynchronous dispatch (fire-and-forget for wallpapers and \"outside\"\ntargets).  Currently, finding the appropriate input targets for an event\nrequires a call back into the WindowManagerServer from native code.\nIn the future this will be refactored to avoid most of these callbacks\nexcept as required to handle pending focus transitions.\n\nEnd-to-end event dispatch mostly works!\n\nTo do: event injection, rate limiting, ANRs, testing, optimization, etc.\n\nChange-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25\n"
    },
    {
      "commit": "74905e5b0a471f727ae5bed770c2c7441f5163a1",
      "tree": "ba1f3dd11aa3bb841a9db8d0fd845ccf9aff71e2",
      "parents": [
        "75b6a6b972e6b18143fd629d3d9c824c442c5f4c"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 10 18:34:55 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 10 18:36:57 2010 -0700"
      },
      "message": "The aapt and aidl tools are prebuilt when we\u0027re doing an apps-only build, so don\u0027t try to build them.\n\nChange-Id: I9896b11a9b90cbbbe2170243c8bdbc40231dfbff\n"
    },
    {
      "commit": "168585ed68f03ddc851cd734cbb6ba813e30eb85",
      "tree": "f48591a6feb0e60c3da8400098fc9a961af48d9d",
      "parents": [
        "9c4ed1394bb16b1d76758127a9b5d73bd363adaf",
        "5474902fe9fe72c825855c4a77f99a581a9f6594"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jun 06 12:10:05 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jun 06 12:10:05 2010 -0700"
      },
      "message": "am 5474902f: Merge \"xhdpi\" into froyo\n\nMerge commit \u00275474902fe9fe72c825855c4a77f99a581a9f6594\u0027 into kraken\n\n* commit \u00275474902fe9fe72c825855c4a77f99a581a9f6594\u0027:\n  xhdpi\n"
    },
    {
      "commit": "588feee5e771de5ec71da213fbb1cba29392c690",
      "tree": "fdfb7f705f3368a88410547ecd302737ad514725",
      "parents": [
        "2e3761ba43f634e97ac493f4b79e5e53954a1491"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 04 14:36:39 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 04 14:36:39 2010 -0700"
      },
      "message": "xhdpi\n\nThis is only a tool (aapt) change, and does not impact any current code.\n\nChange-Id: I562063f612af919eaadba8ac4868a95ff41ac840\n"
    },
    {
      "commit": "15fe2cb73b0770316db302f6502f568062d68e74",
      "tree": "9764af2f6feb0083e768779fc933de1b7f98f352",
      "parents": [
        "a9f06fef8e2fff0c909132073203de5bd2461795"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri May 28 15:44:32 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Jun 03 09:33:43 2010 -0700"
      },
      "message": "Add error checking for translatable strings\n\nTranslatable strings that have multiple substitutions should use\npositional String.format() substitutions. This change makes it an error\nnot to use that format on translatable strings that have more than one\nsubstitution in its text.\n\nChange-Id: I3a19707f3804aa24e8568dc1653a11576cac5916\n"
    },
    {
      "commit": "38a410f12a1cbb5f49cdee6323da898b11c907e7",
      "tree": "c9788b232d34c67ad000aea477c6fa84dd7a22f4",
      "parents": [
        "4000e06ef69bb1523532b73c469c52b8b8d317ce",
        "686d9ff53c32ded9b2b02eb9f2040f2030846e51"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon May 10 12:53:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 10 12:53:28 2010 -0700"
      },
      "message": "am 686d9ff5: merge from open-source master\n\nMerge commit \u0027686d9ff53c32ded9b2b02eb9f2040f2030846e51\u0027 into kraken\n\n* commit \u0027686d9ff53c32ded9b2b02eb9f2040f2030846e51\u0027:\n  Use isLocationProviderEnabled to test for enabled providers\n  Added WEB_URL_PATTERN for Montenegro \".me\"\n  long modifier was on the wrong argument.\n"
    },
    {
      "commit": "686d9ff53c32ded9b2b02eb9f2040f2030846e51",
      "tree": "6c663944ef8d385701c97ef8ebe71394092c845c",
      "parents": [
        "c8d1556fb8e78dc6cecc8dc52f2bf0e093c968f4",
        "0a26aaad8b98c3b80be9562503100e925d078749"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon May 10 12:37:10 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon May 10 12:37:10 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: Ic2b28b589d079cf3c9927ce9ad22bc5f9134e445\n"
    },
    {
      "commit": "0a26aaad8b98c3b80be9562503100e925d078749",
      "tree": "1ee9a4796c9d44bc0d74db7d02cda5aafae043eb",
      "parents": [
        "561b1e42c70e0dc54e7edd970cc3020db6d273cc",
        "066aa99d2d114d46406e00fcc23d193d117395b1"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon May 10 08:55:17 2010 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Mon May 10 08:55:17 2010 -0700"
      },
      "message": "Merge \"long modifier was on the wrong argument.\""
    },
    {
      "commit": "6a22fb9bef2c7e7b5cf53b356e81339f6699e551",
      "tree": "61e4ed2d56b1e34e5620ba2d78e7a9b84a18ffd4",
      "parents": [
        "07779ac16ee5d30a1563b52a157510128bfec720",
        "f7ebcfeccbd4433be5252857a854a6b565bf3fb9"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Tue May 04 12:45:49 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 04 12:45:49 2010 -0700"
      },
      "message": "am f7ebcfec: am e17b4e71: Merge \"Adding the backward-compatible filtering heuristics for the new device features definitions added in FroYo.\" into froyo\n\nMerge commit \u0027f7ebcfeccbd4433be5252857a854a6b565bf3fb9\u0027 into kraken\n\n* commit \u0027f7ebcfeccbd4433be5252857a854a6b565bf3fb9\u0027:\n  Adding the backward-compatible filtering heuristics for the new device\n"
    },
    {
      "commit": "89d97c1418c7a8b54fd57cc90daa1b1a98848bf6",
      "tree": "b01cd29e627f11bdc52579e7b9ddd631d68bf992",
      "parents": [
        "3bb5e4d322a6a7cda45e868dbe307c2dc3cf688e"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Mon May 03 16:13:14 2010 -0700"
      },
      "committer": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Tue May 04 08:39:03 2010 -0700"
      },
      "message": "Adding the backward-compatible filtering heuristics for the new device\nfeatures definitions added in FroYo.\n\nChange-Id: I5024e45c62813fe2fd2ff4d222df816a86a94f86\n"
    },
    {
      "commit": "14cee9f688c32d63d8521188e7422811629bb7c2",
      "tree": "16c2f2356519a2552bb3b7e2b1de6735793c4b1a",
      "parents": [
        "3fd6419fe542c4ecb8e838d1754a83ce8591b288"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 23 17:51:26 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 28 16:51:52 2010 -0700"
      },
      "message": "New xlarge screen size.\n\nNot complete, only for experimentation at this point.\n\nThis includes a reworking of how screen size configurations are matched,\nso that if you are on a larger screen we can select configurations for\nsmaller screens if there aren\u0027t any exactly matching the current screen.\n\nThe screen size at which we switch to xlarge has been arbitrarily\nchosen; the compatibility behavior has not yet been defined.\n\nChange-Id: I1a33b3818eeb51a68fb72397568c39ab040a07f5\n"
    },
    {
      "commit": "29355534384ee24bfe9a3bc97d7664dbe478b4fb",
      "tree": "6a34b62d8a06cbbb4fb608a522593354d9ab9f60",
      "parents": [
        "85a8dcec5460edda72e9917d4f02ad1b6a133251"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Tue Apr 13 15:21:32 2010 -0700"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Fri Apr 23 15:30:42 2010 -0700"
      },
      "message": "Fix aapt to build in Windows SDK under Linux\n\n(Merge master Change Ic4a7b9e4)\n"
    },
    {
      "commit": "c56653bff10ef7f1a80127c9649ed0b2c6ae1b2e",
      "tree": "bf5aec293fa9e6d16f77132e8ff4f5c45fe8b97e",
      "parents": [
        "c9b6851af68bdc20c4903b16c344e9f116647219"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Apr 08 17:18:35 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Apr 08 17:18:35 2010 -0700"
      },
      "message": "Adds back the finalize method on the replaced Paint class.\n\nwithout it com.android.layoutlib.bridge.TestClassReplacement fails.\n\nChange-Id: Iafb6548f45c31e901591a45239224895c4403be8\n"
    },
    {
      "commit": "c9f3088036dd7cce6903e307afea3e289a334036",
      "tree": "e443791605a84703e7530e51f5b1ab97809da6b3",
      "parents": [
        "f60ce402dd1ff5fe402c606c41dafe1294b1f0ff"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 24 11:55:16 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 24 12:05:24 2010 -0700"
      },
      "message": "Use correct API version for UTF-8 checking\n\nUse the constant for checking the API version in aapt instead of a bare\nnumber.\n\nBug: 2541326\nChange-Id: Ice7af7b393363a00f1832dd84753b8138d057fb4\n"
    },
    {
      "commit": "ed9830999aede5e827b31446f91ad90a37b8bba9",
      "tree": "49c40ace21ad5bd9021a243c8bd8abfdbb785f17",
      "parents": [
        "a0d6b59d875edb54b1c820fd4573552989c3869b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 18 14:14:49 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 18 14:14:52 2010 -0700"
      },
      "message": "Make aapt warning concise\n\nThe previous warning made it seem like it could be using the value\nspecified on the command line, but, in fact, it would ignore the command\nline value if it were already specified in the AndroidManifest.xml\n\nChange-Id: I15e8161e094f17412680d25d3b7b810474eb4a31\n"
    },
    {
      "commit": "1741cd4904414b5b4e768953a8f1abb3f0ef0a0a",
      "tree": "e58d120464d0e466c672a71818cdcb3aa2019bfb",
      "parents": [
        "2fbc10f3559b85f6550dd34b8779e9ee94e4c73c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 18 12:12:11 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 18 12:12:11 2010 -0700"
      },
      "message": "Fix minSdkVersion scanning to not throw warnings\n\nFor the UTF8/UTF16 switch code, we needed to know what was the\nminSdkVersion specified as early as possible. Unfortunately, this threw\nwarnings when the SDK was compiling since we always set this field in\nthe Bundle.\n\nThis splits out the field used by the initial AndroidManifest.xml scan\nto a separate one that we won\u0027t attempt to re-insert into the\nAndroidManifest.xml  This also switches the logic to better reflect the\npreference of UTF-8 over UTF-16; previously UTF-16 was the default.\n\nChange-Id: Ia81f6b21047043ebb711eb24c2c3718534979ef6\n"
    },
    {
      "commit": "694f79b5d1196640d1beb680b7d1fc68e6e77cbd",
      "tree": "355894924374fb42cc6f8c664f34b413a90ecd7f",
      "parents": [
        "e4eb5bf243cb51b75b0717ebcd8c317a5b8fae8a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 17 19:44:59 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 01:12:20 2010 -0700"
      },
      "message": "Fix issue #2519590: Lock screen stuck in landscape mode\n\nWell, mostly.  There is still a problem here where the first time\nyou show the lock screen it just doesn\u0027t draw itself.  I assume\nthis is something breaking in the view hierarchy as it floounders\naround removing and adding new views as it is first being shown...\nbut no idea at this point what is the actual case.\n\nChange-Id: Iba99ae3242931c8673b17b106c86fc99e2c52abe\n"
    },
    {
      "commit": "9e652a67ca46c1841993a806e67822fc45b4dc42",
      "tree": "cb03215f16a05e9202c2820235e846fe8ea5b204",
      "parents": [
        "e25bf5dc6357c4cc441846c389b86add3f8489cc"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Mar 12 14:12:14 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Mar 12 14:12:14 2010 -0800"
      },
      "message": "Give an 9-patch error on too many rows and columns\n\nWhen you have too many rows and columns, there are not enough colors in\nthe 9-patch private metadata to represent them. Instead of crashing\naapt, this change gives the user an error message telling them why it\u0027s\ninvalid.\n\nChange-Id: I5e7bd59472a3a2eafa7cbc263792458cce2b5594\n"
    },
    {
      "commit": "15a4d2ffd04dc6c70f2cd17dae12ac6bc14c69ab",
      "tree": "2dbbf0c31082373354fb17308de3681e22c66169",
      "parents": [
        "8abb26ee6c77e01a23d26c305a65b25a33710024"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 11 18:20:12 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 11 18:22:10 2010 -0800"
      },
      "message": "Add correct copyright headers to multiple files\n\nFormat for the list of changes shows the origin commit reference followed\nby the file name.\n\n33931-p9 awt/org/apache/harmony/awt/gl/font/AndroidGlyphVector.java\n33931-p9 awt/org/apache/harmony/awt/gl/image/PngDecoderJava.java\n133776-p9 core/java/android/app/IntentService.java\n127013-p9 core/java/android/appwidget/AppWidgetHost.java\n27863-p9 core/java/android/bluetooth/BluetoothAudioGateway.java\n60765-p9 core/java/android/content/SyncResult.java\n43920-p9 core/java/android/content/pm/ActivityInfo.java\n43920-p9 core/java/android/content/pm/ApplicationInfo.java\n43920-p9 core/java/android/content/pm/InstrumentationInfo.java\n43920-p9 core/java/android/content/pm/PackageInfo.java\n44103-p9 core/java/android/content/pm/PackageItemInfo.java\n68960-p9 core/java/android/content/pm/PackageStats.java\n43920-p9 core/java/android/content/pm/ResolveInfo.java\n43920-p9 core/java/android/content/pm/ServiceInfo.java\n60641-p9 core/java/android/content/res/Configuration.java\n60734-p9 core/java/android/content/res/TypedArray.java\n137672-p9 core/java/android/inputmethodservice/ExtractButton.java\n123112-p9 core/java/android/inputmethodservice/ExtractEditText.java\n119291-p9 core/java/android/inputmethodservice/IInputMethodSessionWrapper.java\n112946-p9 core/java/android/inputmethodservice/IInputMethodWrapper.java\n115078-p9 core/java/android/os/BatteryStats.java\n124790-p9 core/java/android/text/style/UpdateAppearance.java\n45083-p9 core/java/android/view/RawInputEvent.java\n101491-p9 core/java/android/view/inputmethod/EditorInfo.java\n114701-p9 core/java/android/view/inputmethod/ExtractedText.java\n123112-p9 core/java/android/view/inputmethod/ExtractedTextRequest.java\n119291-p9 core/java/com/android/internal/os/HandlerCaller.java\n129279-p9 core/java/com/android/internal/os/PkgUsageStats.java\n114701-p9 core/java/com/android/internal/view/IInputConnectionWrapper.java\n114701-p9 core/java/com/android/internal/view/InputConnectionWrapper.java\n84364-p9 opengl/java/android/opengl/EGLLogWrapper.java\n11355-p9 opengl/tools/glgen/src/CFunc.java\n11355-p9 opengl/tools/glgen/src/CType.java\n11355-p9 opengl/tools/glgen/src/CodeEmitter.java\n11355-p9 opengl/tools/glgen/src/GenerateGL.java\n11355-p9 opengl/tools/glgen/src/JFunc.java\n11355-p9 opengl/tools/glgen/src/JType.java\n11355-p9 opengl/tools/glgen/src/JniCodeEmitter.java\n11355-p9 opengl/tools/glgen/src/ParameterChecker.java\n57236-p9 services/java/com/android/server/status/AnimatedImageView.java\n66754-p9 services/java/com/android/server/status/CloseDragHandle.java\n57188-p9 services/java/com/android/server/status/DateView.java\n46928-p9 services/java/com/android/server/status/ExpandedView.java\n70590-p9 services/java/com/android/server/status/FixedSizeDrawable.java\n45968-p9 services/java/com/android/server/status/IconData.java\n57470-p9 services/java/com/android/server/status/IconMerger.java\n82719-p9 services/java/com/android/server/status/LatestItemView.java\n45968-p9 services/java/com/android/server/status/NotificationData.java\n66754-p9 services/java/com/android/server/status/NotificationLinearLayout.java\n57458-p9 services/java/com/android/server/status/NotificationViewList.java\n45968-p9 services/java/com/android/server/status/StatusBarException.java\n45968-p9 services/java/com/android/server/status/StatusBarIcon.java\n46130-p9 services/java/com/android/server/status/StatusBarNotification.java\n45968-p9 services/java/com/android/server/status/StatusBarView.java\n46199-p9 services/java/com/android/server/status/Ticker.java\n62286-p9 services/java/com/android/server/status/TickerView.java\n57188-p9 services/java/com/android/server/status/TrackingView.java\n86041-p9 telephony/java/android/telephony/PhoneStateListener.java\n87020-p9 telephony/java/com/android/internal/telephony/TelephonyIntents.java\n136269-p9 telephony/java/com/android/internal/telephony/gsm/SpnOverride.java\n34409-p9 tests/FrameworkTest/src/com/android/frameworktest/FrameworkTestApplication.java\n55717-p9 tests/FrameworkTest/src/com/android/frameworktest/performance/InvalidateCycle.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityLandscape.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityPortrait.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScan.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResize.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScan.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollableResize.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityResize.java\n127341-p9 tests/ImfTest/src/com/android/imftest/samples/ButtonActivity.java\n129347-p9 tests/ImfTest/src/com/android/imftest/samples/DialogActivity.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/EditTextActivityDialog.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollResize.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivityNotSelected.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivitySelected.java\n25959-p9 tests/framework-tests/src/android/test/FrameworkTests.java\n46162-p9 tests/framework-tests/src/com/android/internal/http/multipart/MultipartTest.java\n77101-p9 tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/NinePatchTest.java\n9788976b1465ce982b5ae7c741345edd0ecd9322 core/java/android/accounts/AuthenticatorDescription.java\n53332883543868fb83e111a07306368b7772b340 core/java/android/app/UiModeManager.java\n93e7e22ec91dbc641d10ca6d70423e1357a95bba core/java/android/app/FullBackupAgent.java\n328c0e7986aa6bb7752ec6de3da9c999920bb55f core/java/android/content/CursorEntityIterator.java\n307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncQueue.java\n307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncOperation.java\neb034652c2037a47ebfd99779e8383bb8bb528af core/java/android/content/pm/LabeledIntent.java\n49237345d83e62fdb9eb8d50b13ad086636a04fa core/java/android/content/pm/FeatureInfo.java\na2b6c3775ed6b8924232d6a01bae4a19740a15f8 core/java/android/content/pm/PackageInfoLite.java\n3ecd5f437580e49d80beecd29489d5fb1f7a7db0 core/java/android/content/pm/RegisteredServicesCacheListener.java\n5ebbb4a6b3e16f711735ae0615b9a9ea64faad38 core/java/android/content/pm/XmlSerializerAndParser.java\nc4516a7b62de525e3d6d5e76851bdfaf12c11f05 core/java/android/database/sqlite/SQLiteTransactionListener.java\n9bbc21a773cbdfbef2876a75c32bda5839647751 core/java/com/android/internal/backup/LocalTransport.java\n21f1bd17b2dfe361acbb28453b3f3b1a110932fa core/java/com/android/internal/content/PackageMonitor.java\n4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseSurfaceHolder.java\n4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseIWindow.java\ne540833fdff4d58e37c9ba859388e24e2945ed45 core/java/com/android/internal/os/SamplingProfilerIntegration.java\n192ab903887bbb8e7c7b6da5c581573850e30f46 core/tests/coretests/src/android/widget/expandablelistview/PositionTesterContextMenuListener.java\n1619367ab823150fa8856d419abe02ceb75886f1 media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaProfileReader.java\n27f8002e591b5c579f75b2580183b5d1c4219cd4 opengl/tools/glgen/stubs/gles11/glGetString.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetShaderInfoLog.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glShaderSource.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GenerateGLES.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/Jsr239CodeEmitter.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GLESCodeEmitter.java\n69e21f5f6e0d04539cd92848ea009dd615d88c2c opengl/tests/gldual/src/com/android/gldual/TriangleRenderer.java\nc028be4f3b8c7476b46859f66c3f33d528adf181 packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerMeasurement.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestActivity.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestRunner.java\ndf8a3f31d871db25e952972c2eb346a71186e9e3 tests/BrowserTestPlugin/src/com/android/testplugin/TestPlugin.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ActivityManagerPermissionTests.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ServiceManagerPermissionTests.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java\n\nCopyright header moved to top in following file:\n\ncore/tests/coretests/src/android/widget/ListViewTest.java\n\nChange-Id: I3c3198be5a0ba36e18679ed834170432bf0b8418\n"
    },
    {
      "commit": "774562275fa76681933a0105ed61c672892b23bd",
      "tree": "63f8d23f18ce2eea22637feb63c6c340273bd6ab",
      "parents": [
        "a8fbe1fb74d3bd40b73c90c85ac25e5176475ca5"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 10 11:38:05 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 10 11:38:05 2010 -0800"
      },
      "message": "Revert \"Dedupe resource config pointers\"\n\nThis reverts commit 7b467d8b44c00d14590c021928b6a9ad5a36348e.\n"
    },
    {
      "commit": "7b467d8b44c00d14590c021928b6a9ad5a36348e",
      "tree": "35a46a47d27f92d94e0bb7c4ecfc1ab2bd90a928",
      "parents": [
        "4aaf256e95de9d09936b37a6c44e1200e751324e"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Mar 09 16:55:23 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Mar 09 20:56:41 2010 -0800"
      },
      "message": "Dedupe resource config pointers\n\nWhen there are two configs in a StringPool that would match a string ID\nonly keep the more generic entry to save some space. This means that if\nyou have both \"es\" and \"es_US\" translations that have the same\ntranslation, the string entry would be removed from the \"es_US\" config.\n\nChange-Id: I4d619942d35ddb477e2eabe4437b7f02697c24de\n"
    },
    {
      "commit": "cf244ada58539ce857ec041d7288d0271204fbb6",
      "tree": "ec16084d19a3b0c0e43e11dd276fbe7c6a6813c5",
      "parents": [
        "ae58f6d7473c67d76b6c6373794fd1a77543ddb4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 09 15:00:30 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 09 17:18:05 2010 -0800"
      },
      "message": "Add ability for some manifest attributes to reference resources.\n\nThis loosens our restriction on many manifest attributes requiring\nliteral string values, to allow various ones to use values from\nresources.  This is only allowed if the resource value does not change\nfrom configuration changes, and the restriction is still in place\nfor attributes that are core to security (requesting permissions) or\nmarket operation (used libraries and features etc).\n\nChange-Id: I4da02f6a5196cb6a7dbcff9ac25403904c42c2c8\n"
    },
    {
      "commit": "cd47f11dfad012be1b176ea06904a00da157ed7b",
      "tree": "18565631f2ff4911f8ce02101011a13518a6b5c8",
      "parents": [
        "ee2b21dba2740dcb47a68b8d1ed671b425c96948",
        "65e185b51ec655518f1917418cd6192400ac439d"
      ],
      "author": {
        "name": "Ed Heyl",
        "email": "edheyl@google.com",
        "time": "Fri Mar 05 11:59:58 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 05 11:59:58 2010 -0800"
      },
      "message": "Merge \"Change an aapt \"warning\" from \"*** \" to \"**** \" (from three to four stars). \"*** \" (three stars and a space) is the \u0027magic make error string\u0027; so this change makes it easier to find the real issues/errors in build logs.  Besides, other aapt messages are \"**** \".\""
    },
    {
      "commit": "65e185b51ec655518f1917418cd6192400ac439d",
      "tree": "12b22850dbc7af459aeffe3a7abc23f17290ee1a",
      "parents": [
        "f25269398e970f7c072893f71fdebe62afff785b"
      ],
      "author": {
        "name": "Ed Heyl",
        "email": "edheyl@google.com",
        "time": "Fri Mar 05 11:08:58 2010 -0800"
      },
      "committer": {
        "name": "Ed Heyl",
        "email": "edheyl@google.com",
        "time": "Fri Mar 05 11:24:35 2010 -0800"
      },
      "message": "Change an aapt \"warning\" from \"*** \" to \"**** \" (from three to four stars).\n\"*** \" (three stars and a space) is the \u0027magic make error string\u0027; so this change makes it\neasier to find the real issues/errors in build logs.  Besides, other aapt messages are \"**** \".\n"
    },
    {
      "commit": "ee2b21dba2740dcb47a68b8d1ed671b425c96948",
      "tree": "651220603a43fda59bb6dce1d053d53f5dc1da21",
      "parents": [
        "bda5780d39d5483dea938f2b64f6b2e0fb383e22",
        "83f4c0994fd34f9b35eeb2c14908d9e6c2e15930"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Mar 05 11:22:40 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 05 11:22:40 2010 -0800"
      },
      "message": "Merge \"Fix potential aapt crash when processing overlay.\""
    },
    {
      "commit": "83f4c0994fd34f9b35eeb2c14908d9e6c2e15930",
      "tree": "e5932102ec13dae4cdec89244315d7968e70ed33",
      "parents": [
        "687c1330641b614e44c11842b37477666ae63c23"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Mar 04 15:21:59 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Mar 05 11:11:28 2010 -0800"
      },
      "message": "Fix potential aapt crash when processing overlay.\n\nIf an overlay has a type of resources that\u0027s not defined in\nthe main res pool, then aapt would crash.\n\nThis dynamically create new ResourceTypeSet when needed\nwhen processing the overlays\n\nChange-Id: I67bc3622281bde73cf42f37a0983798d3f658ce2\n"
    },
    {
      "commit": "7299c41630935a2b106e73e5603579a7747f7535",
      "tree": "933c4bc5c991c8d9334b7b78fbc71ad73e93d077",
      "parents": [
        "6d141b0a9beb71e59ba850b7be13c4f0344ddc77"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 04 18:41:49 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 05 10:57:47 2010 -0800"
      },
      "message": "Refactor car mode.\n\nExtract all UI behavior from dock observer and ACTION_DOCK_EVENT.\n\nAlso introduce a desk type to go along with the car type all through\nthe resource system, since we now need to have corresponding high-level\nbroadcasts for desk dock mode.  As part of that I also reworked some\nof the logic for switching modes to all funnel through a single\nupdate() call that looks all of the current state to decide what to\ndo next, and fixed various locking issues.\n\nIn addition I found there were bugs in the configuration change\nhandling causing us to only switch into the car mode config and\nthen never get out of it.  Unfortunately now that we are actually\nchanging the configuration for each mode change, the transitions\nbetween them are really crummy as we restart all kinds of\nactivities. :(\n"
    },
    {
      "commit": "b0381efaf71e917214cec78ed1c35eb688454e93",
      "tree": "8c9a91dc69a5674319312237eb5374bf8a92eff4",
      "parents": [
        "f6bd0ba6308673a8b6bb9f71dd40a09d11c0d90d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 03 13:36:35 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 03 13:36:35 2010 -0800"
      },
      "message": "Fix issue #2485441: SettingsBackupAgent crashed system server\n\nNeed to take care of fixing up backupAdjust as well as reporting it\nto ProGuard.\n"
    },
    {
      "commit": "abd03658bc4cd925bf89d60f49d0c56351cf08da",
      "tree": "305811d570f2e7fea2e68028dffe8a1fb13ffb02",
      "parents": [
        "d2b41b6e7d23c4d2cb2b0fb58f2bbef94c95b5d1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 02 14:56:51 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 02 14:56:51 2010 -0800"
      },
      "message": "Fix issue #2482423: Settings is broken due to dead-code stripping\n\nTake care of more custom classes in layouts, and also scan through\npreference XMLs.\n"
    },
    {
      "commit": "ef05e076ced1a32c5c0aaee28403779834adb2ba",
      "tree": "20dcf607adf508481d57610937ceab6ef2c6aee2",
      "parents": [
        "883dbacb12a003f8f46c3faab26b744fdef649a1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 17:43:39 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 20:42:14 2010 -0800"
      },
      "message": "Fix issue #2448075: aapt doesn\u0027t fix up activity-alias android:targetActivity links\n\nAnd related:\n\n- The aapt tool now sets a resource configurations sdk level to match any configs\n  that have been set (for example if you specify density your sdk level will be\n  at least 4).\n- New option to modify the targetPackage attribute of instrumentation.\n- Clean up of aapt options help.\n- Fix of UI type values to leave 0 for \"unspecified\".\n- Make the UI mode config APIs public.\n"
    },
    {
      "commit": "2269d1572e5fcfb725ea55f5764d8c3280d69f6d",
      "tree": "7ce0788be6d85972d42ee7135cdce82aa323fcc7",
      "parents": [
        "e46145f7c114b9ac6d19c6a7886e9239463f91e1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 24 19:54:22 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 25 11:39:33 2010 -0800"
      },
      "message": "Re-arrange android-common so framework no longer links with it.\n\nThis is the framework part, moving classes around so the framework\nno longer needs to link to android-common.  Makes some APIs public,\nothers that didn\u0027t need to be public are private in the framework,\nsome small things are copied.\n"
    },
    {
      "commit": "7ff20e30c50cf1d47a7eaacd71665a1d2f4ecdc4",
      "tree": "c9af0416cb8e87c61178b63b13d385bcb62af4c5",
      "parents": [
        "74f39d4c172398c96fa3d6dbdec740bc168e60f1"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 24 23:49:59 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 24 23:49:59 2010 -0800"
      },
      "message": "Create own reference for minSdkVersion in aapt\n\nFix bug where applications defining a minSdkVersion were experiencing\ntransient errors from memory corruption in aapt.\n\nChange-Id: I839d5eda7388baac6133e735fa59f9799ca2822d\n"
    },
    {
      "commit": "5a8ec761213d723fc3a6a92250e5e855605046a6",
      "tree": "2b9d6b08297b36efacdf8bdf21c1da8d763e9657",
      "parents": [
        "406b09bbd117446814a05aabc5971fd55c6afa5d"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 24 20:00:03 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 24 20:03:17 2010 -0800"
      },
      "message": "Scan for android namespace in manifest\n\nandroid:minSdkVersion wasn\u0027t being correctly scanned because the\nnamespace was incorrect. This fixes that problem so packages aren\u0027t\ngenerated as UTF-8 when minSdkVersion is less than 7.\n\nChange-Id: I8f45d47ea886915da6a4770f6e111e6085d61bee\n"
    },
    {
      "commit": "ba289966c644bf54a747ba9b003f86ea7f12bfed",
      "tree": "304330843acce41a1e55da90116fa24cf493417a",
      "parents": [
        "982bb24f5db4bfd9c52eb16adb876fea7c7e4a8b",
        "05c376b00b583ea3fdf0a222d7220fab7eca15c2"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Feb 24 19:15:06 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 19:15:06 2010 -0800"
      },
      "message": "Merge \"Remove empty finalize methods.\""
    },
    {
      "commit": "05c376b00b583ea3fdf0a222d7220fab7eca15c2",
      "tree": "9618fa1b6ef8aeb8b20ba1f08934e8925b6cb750",
      "parents": [
        "8ff1e3f2ec24c6b81b90e1644060e6de25fb456e"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Feb 24 18:43:36 2010 -0800"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Feb 24 18:43:36 2010 -0800"
      },
      "message": "Remove empty finalize methods.\n"
    },
    {
      "commit": "a09bb0d218d2ddb73b92b6dd4415456c9105cde8",
      "tree": "97b040f3cd552c615356b2bc84f8d10be0ead6f8",
      "parents": [
        "68aea82432574b7d9eac18729d61ffa04625109d",
        "e9fcaa0697dcb257d0288118347f721ce8806b55"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Feb 24 17:38:13 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 17:38:13 2010 -0800"
      },
      "message": "Merge \"New update of preloaded classes for Froyo.\""
    },
    {
      "commit": "e9fcaa0697dcb257d0288118347f721ce8806b55",
      "tree": "f454ddf387fc3a299d9e06ae40fa01af3e0eb6af",
      "parents": [
        "4bd222f1072513b21cd66d6f983ebdccb6d9b0c8"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Feb 23 17:06:58 2010 -0800"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Feb 24 15:50:05 2010 -0800"
      },
      "message": "New update of preloaded classes for Froyo.\n"
    },
    {
      "commit": "be896a9b2e8dfb3bac6b270ff6e2388d1cb53d25",
      "tree": "f941b551c0357aa6a5c7f88be5a498171684d133",
      "parents": [
        "b9e5cc3c3a6f1d6421a7c4b2c0aa63beebfd1ebc",
        "bc3323bea64bbeab0edd0df5e344d844a8d89509"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Wed Feb 24 10:54:00 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 10:54:00 2010 -0800"
      },
      "message": "Merge \"Fix the layoutlib to still support fill_parent.\""
    },
    {
      "commit": "bc3323bea64bbeab0edd0df5e344d844a8d89509",
      "tree": "7e0081282035368680ef9919b29f1760fbecc2d7",
      "parents": [
        "2e1818a4d16c3309660f27286c77d8d1eee95a25"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Feb 23 19:43:04 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Feb 23 19:43:04 2010 -0800"
      },
      "message": "Fix the layoutlib to still support fill_parent.\n\nChange-Id: I5e1825f1f853cf9e31b2ee262edce636a030429d\n"
    },
    {
      "commit": "780d2a1b714724d85227141c76b3c64f543f00b4",
      "tree": "3bd5411acce1ae663e4509c812b3aaa6100c6a41",
      "parents": [
        "cfe79e9220c996ed9f60fbc00eebb23e7faba2f0"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Feb 22 22:36:26 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Feb 23 10:02:20 2010 -0800"
      },
      "message": "Use UTF-8 strings to avoid duplicate caching, part 1\n\nStringBlock instances containing UTF-8 strings use a cache to convert\ninto UTF-16, but using that cache and then using a JNI call to NewString\ncauses the UTF-8 string as well as two copies of the UTF-16 string to\nbe held in memory. Getting the UTF-8 string directly from the StringPool\neliminates one copy of the UTF-16 string being held in memory.\n\nThis is part 1. Part 2 will include ResXMLParser optimizations.\n\nChange-Id: Ibd4509a485db746d59cd4b9501f544877139276c\n"
    },
    {
      "commit": "e599f78e7785d41902d7525c71d487b36d8ccca2",
      "tree": "f4b3e6c993d5f70b1bacf24b6a5d6be06f6fa1f2",
      "parents": [
        "eac461cf7c246df737d2b0e7bd30be176a34c36e"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 19 12:45:48 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 19 12:45:48 2010 -0800"
      },
      "message": "Use direct reference to enum in AaptAssets\n\nThe second argument to the getNavHiddenName can be NULL, so use a direct\nreference to the class to get the enum values instead of the argument.\n\nChange-Id: I0444572c23cb4de9e7da15a8310a49cf4619bb15\n"
    },
    {
      "commit": "e36d6e277e49475076b7872d36ea6a5c5b996e9d",
      "tree": "83fa38d654d5bf93315b12423a7e9aa81ec45f9e",
      "parents": [
        "a696f5d667227365da732481770767dcb330dd23"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 19:46:25 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 18 15:47:34 2010 -0800"
      },
      "message": "Work on issue #2263557: PMF3000 showing hybrid of portrait and landscape modes\n\nThis is a bunch of reworking of how configuration changes are handled:\n\n- When orientation is changing (for whatever reason), the window manager no\n  longer tries to pre-emptively compute a new configuration.  Instead, it\n  just determines  change is happening and tells the window manager.\n- The activity manager is now responsible for giving the window manager the\n  final configuration it is using.  This is both so it knows whem the\n  activity manager is done with its configuration updates, and so the window\n  manager can use the \"real\" configuration.\n- When an orientation or other configuration change is happening, freeze the\n  screen and keep it frozen until the activity manager has given us the\n  final configuration.\n- The window manager can now send new configurations to its clients during\n  its layout pass, as part of a resize, if it has determined that it has\n  changed.  This allows for a new View.onConfigurationChanged() API for any\n  view to easily find out when the configuration has changed.\n- ViewRoot now also works with the activity thread to make sure the process\u0027s\n  current resources are updated to the new configuration when it receives one\n  from a window.  This ensures that at the time onConfigurationChanged() and\n  other view callbacks are happening, the correct configuration is in force.\n- There is now a sequence number associated with Configuration, which\n  ActivityThread uses to avoid using stale configurations.  This is needed now\n  that it can receive configurations asynchronously from both the window\n  manager and activity manager.\n- The hack for keeping the locale has been removed, and underlying problem\n  fixed by having Configuration initialize its locale to \"unknown\" instead of\n  a valid default value.\n"
    },
    {
      "commit": "5706329cf42db714582fa698eb9f408350276f16",
      "tree": "0e4fe012be66456186b868db852a9112d208a74a",
      "parents": [
        "d970998b0d489774ad1c5b94b47d233912f00214",
        "f5a7c121dd3abb9763c30115c772fd1fc03caea2"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 18 12:39:15 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 18 12:39:15 2010 -0800"
      },
      "message": "Merge \"Change buf size holding integer in ResourceTable\""
    },
    {
      "commit": "f5a7c121dd3abb9763c30115c772fd1fc03caea2",
      "tree": "88aae80771f637c88a969e9a9efc910653f1ff4f",
      "parents": [
        "c948cc8c8a8a9a751d8252e390e5975d1a763d34"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 18 09:43:08 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 18 09:44:35 2010 -0800"
      },
      "message": "Change buf size holding integer in ResourceTable\n\nA 32-bit integer can be 10 characters long plus a byte for \\0 at the\nend.\n\nChange-Id: I58040fe6e1674e78bcc6e07463ff36fb26e280f4\n"
    },
    {
      "commit": "fedfea24e7de98b4fde13d6f79e6db37d9f0e169",
      "tree": "4988eec3ace281fb48a5aec136bebc92b52a3aa6",
      "parents": [
        "c948cc8c8a8a9a751d8252e390e5975d1a763d34"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 18 08:54:47 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 18 08:54:47 2010 -0800"
      },
      "message": "Fix enum reference\n\nWas using argument that is set default to NULL as a shortcut to an\nenum\u0027s value. Change it to reference to class directly to avoid a null\npointer dereference.\n\nChange-Id: I16b8ee15af4f095f027113131d574b70768994b0\n"
    },
    {
      "commit": "ddcf25ea7e1b21b908da73000630c72d6fa146b4",
      "tree": "806eef7811aef6c092e269ce6c1c7081704962e9",
      "parents": [
        "de7b14f9ab3df84bcb6af0775e96cab02648cbd9",
        "2be56ccbcff9d5f7b9b3cc0fed3825d4f037ff6a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Fri Feb 12 17:52:28 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 12 17:52:28 2010 -0800"
      },
      "message": "am 2be56ccb: Merge \"Add --auto-add-overlay option to aapt. DO NOT MERGE\" into eclair\n\nMerge commit \u00272be56ccbcff9d5f7b9b3cc0fed3825d4f037ff6a\u0027 into eclair-plus-aosp\n\n* commit \u00272be56ccbcff9d5f7b9b3cc0fed3825d4f037ff6a\u0027:\n  Add --auto-add-overlay option to aapt. DO NOT MERGE\n"
    },
    {
      "commit": "b9d2dc2319d1ced5cabedabe0dfbf5add9753dbd",
      "tree": "6f0f743d309cc5a20fb00cd41b1ab647a8f49a29",
      "parents": [
        "e88192b9d2a8c364d8545471907c5baa275bb5f6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 04 18:45:31 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 12 17:37:50 2010 -0800"
      },
      "message": "Add --auto-add-overlay option to aapt. DO NOT MERGE\n\nThis option allows resources only present in overlays to be\nadded automatically instead of being declared through \u003cadd-resource\u003e\n\n(merge from master)\n\nChange-Id: I5f402a1fa7213d18724d91f84bc05ef39ace2ed9\n"
    },
    {
      "commit": "e2c17f9174144a6eca3fdbed8d5d1370f318f549",
      "tree": "ec4d9f2d5d9cca37801c7464322c763db26b1586",
      "parents": [
        "90762d35a99e32ed22cdfb1f81252544ee22e30b"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Fri Feb 12 13:45:16 2010 -0600"
      },
      "committer": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Fri Feb 12 13:45:16 2010 -0600"
      },
      "message": "Dump original-package entries.\n\nChange-Id: I29b20811847555ff9858ef47cca69c8b992b24ea\n"
    },
    {
      "commit": "99e1cdae99a99170011150d6827bf4c9ee63c075",
      "tree": "8e882ebff1b4b364736951705f47568e100c8d06",
      "parents": [
        "7356b0b0661f61a161ac6771e4325ad5f687cb2e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 11 15:37:31 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 11 15:37:31 2010 -0800"
      },
      "message": "Fix in layoutlib due to some changes in the frameworks.\n\nSome methods disappear or became abstract in the base class\n(breaking @Override)\n\nChange-Id: Id4d298ee84ba008ac97ecaaf90b19003ac09f104\n"
    },
    {
      "commit": "27b28b3f62bd3b54fa13acd5d035940b9be464f3",
      "tree": "d1f44096f7071bbc53e5bc979117be8e0f4aa55c",
      "parents": [
        "d5663a108760de672b130ffabd4f6632982f75e5"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Tue Feb 09 23:09:17 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 11 21:25:58 2010 +0100"
      },
      "message": "Introduce special UI modes for night and car usage.\n\nThe device mode is now called ui mode. Furthermore is the order of\nprecedence for the resources now in such a way that the ui mode needs\nto be specified after the orientation and before the density.\n\nThe ui mode can be set, like it is done for the locale, as follows:\n\nIActivityManager am \u003d ActivityManagerNative.getDefault();\nConfiguration config \u003d am.getConfiguration();\nconfig.uiMode \u003d Configuration.UI_MODE_TYPE_CAR | Configuration.UI_MODE_NIGHT_ANY;\nam.updateConfiguration(config);\n\nTo allow users to disable the car mode and set the night mode the IUiModeManager\ninterface is used.\n\nThe automatic night mode switching will be added in a separate change.\n"
    },
    {
      "commit": "e83cefcef07f9ac025642c1ffec76b4c7ab39cf2",
      "tree": "130696ee2a90150129c3ee98544c5814528c90f9",
      "parents": [
        "72e5a8820a996c547eacea534b11b6b8f6eca83b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 04 17:38:14 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 09 14:20:55 2010 -0800"
      },
      "message": "New external storage APIs.\n\nThis implements the spec for external storage organization, and\nproperly reflects how the media scanner organizes the files it finds.\n\nAlso includes package manager support for removing app private\nfiles from external storage when the application is uninstalled.\n\nFor the new APIs and paths, the main place to look is Environment\nand Context.\n"
    },
    {
      "commit": "99080c7d9ad9e5ccfec70dd10e4c24468a960c45",
      "tree": "5ebcc1e38b01a53bb07617bd1b151d1c8fa5f1b5",
      "parents": [
        "732ebb1bc3d7760fd424b84e0235ea9946100102"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 04 18:45:31 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 04 18:53:14 2010 -0800"
      },
      "message": "Add --auto-add-overlay option to aapt.\n\nThis option allows resources only present in overlays to be\nadded automatically instead of being declared through \u003cadd-resource\u003e\n\nChange-Id: Iff782311056f6a045193e57d204f7d3413e11b26\n"
    },
    {
      "commit": "2fee0ed6eb99b211efa06f095a41268a2021214a",
      "tree": "bc7ce3df25a1d7ec1f61fb85ef56899dab5eb66b",
      "parents": [
        "7188f946521d64ea21121939d2a4c279f33fe910"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Wed Jan 06 15:46:38 2010 -0600"
      },
      "committer": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Mon Feb 01 18:47:01 2010 -0600"
      },
      "message": "Add the --rename-manifest-package option to aapt.\n\nIt allows you to force override the manifest\npackage listed in the AndroidManifest.xml when\ncreating an APK file.\n\nChange-Id: I7eac7943c4e56610b65728ae54773a273634fd9d"
    },
    {
      "commit": "15900779058611c1a082724486cb0a49c50ae606",
      "tree": "2200e19624d9ff30ee64f0615b836d95160dba9d",
      "parents": [
        "507354e4ba07e1d8701d747d60414b053eb517b4",
        "6efe03b19e0734361b262f9a0be4d225088d7f9e"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Jan 27 15:53:20 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 27 15:53:20 2010 -0800"
      },
      "message": "am 6efe03b1: am 6f9e2c64: Merge \"Find layout classes in all \"layout-*\" dirs.\" into eclair\n\nMerge commit \u00276efe03b19e0734361b262f9a0be4d225088d7f9e\u0027\n\n* commit \u00276efe03b19e0734361b262f9a0be4d225088d7f9e\u0027:\n  Find layout classes in all \"layout-*\" dirs.\n"
    },
    {
      "commit": "264ce3825892e4b5ef6af61d330832f4592130bf",
      "tree": "69b6a9b7d0ca691d8850f4c719b2527088f23288",
      "parents": [
        "4789f0cd166e2e88aeba350b5baa45ab5d59b1b2",
        "3bd6dc653521281db25df77f055b3ec0b4659454"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Fri Jan 22 12:36:26 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 22 12:36:26 2010 -0800"
      },
      "message": "am 3bd6dc65: am b44051ee: Merge \"ADT/Layoutlib: implement sweep gradient.\" into eclair\n\nMerge commit \u00273bd6dc653521281db25df77f055b3ec0b4659454\u0027\n\n* commit \u00273bd6dc653521281db25df77f055b3ec0b4659454\u0027:\n  ADT/Layoutlib: implement sweep gradient.\n"
    },
    {
      "commit": "28d9c60ee203eff53a5a8577df8a780402173b24",
      "tree": "0149aa577e65eda2c1050182a56a95f7be227515",
      "parents": [
        "b70efcbbb1ae0672c43da86511daf49d177d8ed8",
        "60e3c09ec0fa73a3e650f4aec89c763599c2e0b7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Fri Jan 22 09:45:49 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 22 09:45:49 2010 -0800"
      },
      "message": "am 60e3c09e: am 6866daee: Merge \"ADT/Layoutlib: implement radial gradient.\" into eclair\n\nMerge commit \u002760e3c09ec0fa73a3e650f4aec89c763599c2e0b7\u0027\n\n* commit \u002760e3c09ec0fa73a3e650f4aec89c763599c2e0b7\u0027:\n  ADT/Layoutlib: implement radial gradient.\n"
    },
    {
      "commit": "b70efcbbb1ae0672c43da86511daf49d177d8ed8",
      "tree": "271aac9e655c1c0fbf603a16e214c8dbb237ca97",
      "parents": [
        "6d001c0f7a7659d456012c220aed14a891a20a83",
        "3c05f1fbac2ce35483f61dbd5d5bfb6341da6d9c"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Jan 22 09:45:31 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 22 09:45:31 2010 -0800"
      },
      "message": "am 3c05f1fb: am b5fb50a1: Merge \"Add instrumentation as a source tag for proguard keep options.\" into eclair\n\nMerge commit \u00273c05f1fbac2ce35483f61dbd5d5bfb6341da6d9c\u0027\n\n* commit \u00273c05f1fbac2ce35483f61dbd5d5bfb6341da6d9c\u0027:\n  Add instrumentation as a source tag for proguard keep options.\n"
    },
    {
      "commit": "c22b3ca198dcb1d11c1a9cb8e17eb9c66b2afaa5",
      "tree": "8f67df6b20bfd8912e623924dff331b467cfc28d",
      "parents": [
        "4e8e87d905054737dc51ef0ba90f0a0a518be000",
        "da84d6a1b1c37376d48f92ae59b76f1c891772f6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 21 17:55:40 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 21 17:55:40 2010 -0800"
      },
      "message": "am da84d6a1: am 908a8111: Merge \"ADT/Layoutlib: Add dash support to stroke.\" into eclair\n\nMerge commit \u0027da84d6a1b1c37376d48f92ae59b76f1c891772f6\u0027\n\n* commit \u0027da84d6a1b1c37376d48f92ae59b76f1c891772f6\u0027:\n  ADT/Layoutlib: Add dash support to stroke.\n"
    },
    {
      "commit": "4e8e87d905054737dc51ef0ba90f0a0a518be000",
      "tree": "4558d5ea66dafef88b0dbc9ad61f0172d1c73211",
      "parents": [
        "fa5875a3c5089069655093fa1f5cab80f6f9fe96",
        "c0ea805c649666b55d4dde09eb72dcccfa8bccc3"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 21 17:55:17 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 21 17:55:17 2010 -0800"
      },
      "message": "am c0ea805c: am 2b30a4a5: Merge \"ADT/Layoutlib: properly handle stroke information.\" into eclair\n\nMerge commit \u0027c0ea805c649666b55d4dde09eb72dcccfa8bccc3\u0027\n\n* commit \u0027c0ea805c649666b55d4dde09eb72dcccfa8bccc3\u0027:\n  ADT/Layoutlib: properly handle stroke information.\n"
    },
    {
      "commit": "37f3ddb60ba75acde323066836e6ba2111dabb98",
      "tree": "420fb06be6502d204863352bb7d3524b5e0940cb",
      "parents": [
        "051ab623342746b6e25676c740f6104989902de6",
        "0a2fb2174ed8d3e34ae435410ea3998a1fb2d97f"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jan 21 16:10:58 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 21 16:10:58 2010 -0800"
      },
      "message": "Merge \"relocate GoogleLoginService\""
    },
    {
      "commit": "0a2fb2174ed8d3e34ae435410ea3998a1fb2d97f",
      "tree": "865aa74cbf0beb3453115aa5db43b93002a5591e",
      "parents": [
        "72666bac20cddba1d2269578c82671fdf5beffc2"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jan 21 14:36:17 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jan 21 14:36:17 2010 -0800"
      },
      "message": "relocate GoogleLoginService\n\nChange-Id: I79f4ff658ab136adcc54c432db76f34d2de5f6ac\n"
    },
    {
      "commit": "18d21ef83e5de1cbd3875274f3c5f6eee198af6e",
      "tree": "81f73f8b785e336e550dafaf29fbada98a43a193",
      "parents": [
        "beb0993c6aa7ccaf4e1ec88355a28f4c3ea93c7a",
        "20cc55703348827fbd80ff0410777a537f01e10e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 21 14:31:11 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 21 14:31:11 2010 -0800"
      },
      "message": "am 20cc5570: am 79f05bb4: Merge \"ADT/Layoutlib: improved gradient drawing for perf.\" into eclair\n\nMerge commit \u002720cc55703348827fbd80ff0410777a537f01e10e\u0027\n\n* commit \u002720cc55703348827fbd80ff0410777a537f01e10e\u0027:\n  ADT/Layoutlib: improved gradient drawing for perf.\n"
    },
    {
      "commit": "beb0993c6aa7ccaf4e1ec88355a28f4c3ea93c7a",
      "tree": "493ce6dae1d107d3d604af65309298e4ef4ac555",
      "parents": [
        "900399f3e8bc3001d3dd017449aea15487c68c59",
        "38fa9eee9324b2355f28372e80dba12c1d7cc105"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 21 14:30:48 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 21 14:30:48 2010 -0800"
      },
      "message": "am 38fa9eee: am 89d538dc: ADT/Layoutlib: don\\\u0027t draw 0-sized rectangle, AWT doesn\\\u0027t like that.\n\nMerge commit \u002738fa9eee9324b2355f28372e80dba12c1d7cc105\u0027\n\n* commit \u002738fa9eee9324b2355f28372e80dba12c1d7cc105\u0027:\n  ADT/Layoutlib: don\u0027t draw 0-sized rectangle, AWT doesn\u0027t like that.\n"
    },
    {
      "commit": "900399f3e8bc3001d3dd017449aea15487c68c59",
      "tree": "e812af2386cc1d07db8f3a3cc1e873cd72b68daa",
      "parents": [
        "eca7f02f52470a15b874759deb0999f8ce920f03",
        "895c92a44b8bcf0aec7066c061293cafe12a76c2"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 21 14:30:17 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 21 14:30:17 2010 -0800"
      },
      "message": "am 895c92a4: am 240298f9: Merge \"ADT/Layoutlib: always use custom gradient (java) Paint.\" into eclair\n\nMerge commit \u0027895c92a44b8bcf0aec7066c061293cafe12a76c2\u0027\n\n* commit \u0027895c92a44b8bcf0aec7066c061293cafe12a76c2\u0027:\n  ADT/Layoutlib: always use custom gradient (java) Paint.\n"
    },
    {
      "commit": "7fa53aa5df551d318983ed1258ba141337c68ba6",
      "tree": "a806504f624938228c929fa3c320bcb5b83c12ae",
      "parents": [
        "04ce08f34e39928a5b8e9ea59134f255c9ff08f6",
        "31ef2e77c50485ad6ed410a5d341754d6787b8e1"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 21 14:29:02 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 21 14:29:02 2010 -0800"
      },
      "message": "am 31ef2e77: am b847fbf2: Merge \"ADT/Layout: support for 3+ color in linear gradients\" into eclair\n\nMerge commit \u002731ef2e77c50485ad6ed410a5d341754d6787b8e1\u0027\n\n* commit \u002731ef2e77c50485ad6ed410a5d341754d6787b8e1\u0027:\n  ADT/Layout: support for 3+ color in linear gradients\n"
    },
    {
      "commit": "6efe03b19e0734361b262f9a0be4d225088d7f9e",
      "tree": "7998ce1a29b84399c003b1d7bc578c5043f270a7",
      "parents": [
        "1f2f23bd16ff798a08d73f4159ddcb621e70fc94",
        "6f9e2c648c0588a2eedef2746c9750ed9c6945be"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Jan 21 11:12:29 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 21 11:12:29 2010 -0800"
      },
      "message": "am 6f9e2c64: Merge \"Find layout classes in all \"layout-*\" dirs.\" into eclair\n\nMerge commit \u00276f9e2c648c0588a2eedef2746c9750ed9c6945be\u0027 into eclair-plus-aosp\n\n* commit \u00276f9e2c648c0588a2eedef2746c9750ed9c6945be\u0027:\n  Find layout classes in all \"layout-*\" dirs.\n"
    },
    {
      "commit": "c111296b97d51147f8c9448c7c27b53309ee6f39",
      "tree": "e49323643bb412cc1430df6881f5d2e3ee6cd3c2",
      "parents": [
        "e834722f547d13eaa453464502456892c6225e42"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Jan 20 22:12:46 2010 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Jan 20 22:12:46 2010 -0800"
      },
      "message": "Find layout classes in all \"layout-*\" dirs.\n\nBefore this CL, the generated keep flags for layout classes are incomplete,\nsuch as layout classes in res/layout-port/ and res/layout-land and so on.\n"
    },
    {
      "commit": "3bd6dc653521281db25df77f055b3ec0b4659454",
      "tree": "8206d46b2f3d153da48e4368668f352e332d0cfa",
      "parents": [
        "382f924c951ff49e9bbb48a744a45fce1ad7ccd4",
        "b44051eee04450888a7dcb1cd2e6f31d0edfb678"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Wed Jan 20 09:47:06 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 20 09:47:06 2010 -0800"
      },
      "message": "am b44051ee: Merge \"ADT/Layoutlib: implement sweep gradient.\" into eclair\n\nMerge commit \u0027b44051eee04450888a7dcb1cd2e6f31d0edfb678\u0027 into eclair-plus-aosp\n\n* commit \u0027b44051eee04450888a7dcb1cd2e6f31d0edfb678\u0027:\n  ADT/Layoutlib: implement sweep gradient.\n"
    },
    {
      "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": "ef5506c817c2a305ca1c7b03d4ea34a64962b9d7",
      "tree": "dc9f072b84d93ac15b50be18b20e4c4bfaf8688f",
      "parents": [
        "691b47e154f702bc77472e670281a6be4252e89d",
        "f95e3dd23cb6cbd7a86dece3c4bafff71307721a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 19 16:34:48 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 19 16:34:48 2010 -0800"
      },
      "message": "am f95e3dd2: am 5e083024: ADT/Layoutlib: shader clean-up.\n\nMerge commit \u0027f95e3dd23cb6cbd7a86dece3c4bafff71307721a\u0027\n\n* commit \u0027f95e3dd23cb6cbd7a86dece3c4bafff71307721a\u0027:\n  ADT/Layoutlib: shader clean-up.\n"
    },
    {
      "commit": "691b47e154f702bc77472e670281a6be4252e89d",
      "tree": "50f35f10fc25dace14f976faeb5d23f7a1743b4b",
      "parents": [
        "28efe25149cf4ba084146fd1b3cbf9504fcd2dc3",
        "e1a991476365cf1a8249c842e2b936db6940b0a7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Tue Jan 19 16:34:32 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 19 16:34:32 2010 -0800"
      },
      "message": "am e1a99147: am d3026e16: Merge \"ADT/Layoutlib: 2 color, linear gradient support.\" into eclair\n\nMerge commit \u0027e1a991476365cf1a8249c842e2b936db6940b0a7\u0027\n\n* commit \u0027e1a991476365cf1a8249c842e2b936db6940b0a7\u0027:\n  ADT/Layoutlib: 2 color, linear gradient support.\n"
    },
    {
      "commit": "60e3c09ec0fa73a3e650f4aec89c763599c2e0b7",
      "tree": "9931bb1436b24eb8dddb5db0334e49780ed3a0f5",
      "parents": [
        "3c05f1fbac2ce35483f61dbd5d5bfb6341da6d9c",
        "6866daee6a18992e8f2c9a948e873bbfc2090fb0"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Tue Jan 19 14:53:52 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 19 14:53:52 2010 -0800"
      },
      "message": "am 6866daee: Merge \"ADT/Layoutlib: implement radial gradient.\" into eclair\n\nMerge commit \u00276866daee6a18992e8f2c9a948e873bbfc2090fb0\u0027 into eclair-plus-aosp\n\n* commit \u00276866daee6a18992e8f2c9a948e873bbfc2090fb0\u0027:\n  ADT/Layoutlib: implement radial gradient.\n"
    },
    {
      "commit": "3c05f1fbac2ce35483f61dbd5d5bfb6341da6d9c",
      "tree": "5af9aa99fd904fb7c4b270bbaed0c788695fa9a6",
      "parents": [
        "e0aed796f03b080dabae6be0803d4ead1b3260a0",
        "b5fb50a133c6fc7fc93d6241912dd9ec24de6ace"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Jan 19 14:53:47 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 19 14:53:47 2010 -0800"
      },
      "message": "am b5fb50a1: Merge \"Add instrumentation as a source tag for proguard keep options.\" into eclair\n\nMerge commit \u0027b5fb50a133c6fc7fc93d6241912dd9ec24de6ace\u0027 into eclair-plus-aosp\n\n* commit \u0027b5fb50a133c6fc7fc93d6241912dd9ec24de6ace\u0027:\n  Add instrumentation as a source tag for proguard keep options.\n"
    },
    {
      "commit": "6866daee6a18992e8f2c9a948e873bbfc2090fb0",
      "tree": "6104d725053856a0e0b6ddaae3fc9cacf9003dca",
      "parents": [
        "b5fb50a133c6fc7fc93d6241912dd9ec24de6ace",
        "45a7c285985976c23d818665694addbb25e02565"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Tue Jan 19 14:48:58 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 19 14:48:58 2010 -0800"
      },
      "message": "Merge \"ADT/Layoutlib: implement radial gradient.\" into eclair"
    },
    {
      "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": "b5fb50a133c6fc7fc93d6241912dd9ec24de6ace",
      "tree": "0c676a811c7ea7073b6a498c3e1fd9b94082348a",
      "parents": [
        "ccec75e7a842f8ba26617406768206eb3be32222",
        "46f4b9827efaceb0ceae49f06130caa2d2b9743e"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Jan 19 11:55:12 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 19 11:55:12 2010 -0800"
      },
      "message": "Merge \"Add instrumentation as a source tag for proguard keep options.\" into eclair"
    },
    {
      "commit": "28039a6f7430bed46de5d8273be583f729c31b79",
      "tree": "8d1c2051537f6015b3817d9b35827668c466043b",
      "parents": [
        "3e22d199a0434a6450eccc5f75a1ad8141878de0",
        "1da2735c5862d48712706c2052a34e10e3dea43b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Tue Jan 19 00:02:15 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 19 00:02:15 2010 -0800"
      },
      "message": "am 1da2735c: am f73bd14a: Merge \"ADT/Layoutlib: implement Canvas.concat(Matrix)\" into eclair\n\nMerge commit \u00271da2735c5862d48712706c2052a34e10e3dea43b\u0027\n\n* commit \u00271da2735c5862d48712706c2052a34e10e3dea43b\u0027:\n  ADT/Layoutlib: implement Canvas.concat(Matrix)\n"
    },
    {
      "commit": "05bc8d739768c8e2e025c291706f6c10ac362636",
      "tree": "22fb2ea37745740365c1e29687917a746efb9270",
      "parents": [
        "2b7ff1c47147e31521a3ef9e7d02252111192cb3",
        "cff6c8459ca05f3fee2d2999989d07a7176f955c"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 19 00:01:32 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 19 00:01:32 2010 -0800"
      },
      "message": "am cff6c845: am ae4bd059: ADT/Layoutlib: Reimplement parts of BitmapFactory\n\nMerge commit \u0027cff6c8459ca05f3fee2d2999989d07a7176f955c\u0027\n\n* commit \u0027cff6c8459ca05f3fee2d2999989d07a7176f955c\u0027:\n  ADT/Layoutlib: Reimplement parts of BitmapFactory\n"
    },
    {
      "commit": "da84d6a1b1c37376d48f92ae59b76f1c891772f6",
      "tree": "dbd1762febbcc7617aec00b58132652d4419a868",
      "parents": [
        "c0ea805c649666b55d4dde09eb72dcccfa8bccc3",
        "908a81119061092468067789acbec9b99d79ad5f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Mon Jan 18 23:42:55 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 18 23:42:55 2010 -0800"
      },
      "message": "am 908a8111: Merge \"ADT/Layoutlib: Add dash support to stroke.\" into eclair\n\nMerge commit \u0027908a81119061092468067789acbec9b99d79ad5f\u0027 into eclair-plus-aosp\n\n* commit \u0027908a81119061092468067789acbec9b99d79ad5f\u0027:\n  ADT/Layoutlib: Add dash support to stroke.\n"
    },
    {
      "commit": "c0ea805c649666b55d4dde09eb72dcccfa8bccc3",
      "tree": "0fe48de72b15fd9734fbb612be799efff6d946f1",
      "parents": [
        "88196464e91dd533f2dd28a02f55b7e4801eead0",
        "2b30a4a50e24080fdd8b796e4a64447f223d4522"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Mon Jan 18 23:42:28 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 18 23:42:28 2010 -0800"
      },
      "message": "am 2b30a4a5: Merge \"ADT/Layoutlib: properly handle stroke information.\" into eclair\n\nMerge commit \u00272b30a4a50e24080fdd8b796e4a64447f223d4522\u0027 into eclair-plus-aosp\n\n* commit \u00272b30a4a50e24080fdd8b796e4a64447f223d4522\u0027:\n  ADT/Layoutlib: properly handle stroke information.\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": "20cc55703348827fbd80ff0410777a537f01e10e",
      "tree": "7bd1ee56751af4f5030547028b5513a8d7ca57eb",
      "parents": [
        "38fa9eee9324b2355f28372e80dba12c1d7cc105",
        "79f05bb4a502d5768f84cf975f791f3ba981e0e5"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 14 19:15:28 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 14 19:15:28 2010 -0800"
      },
      "message": "am 79f05bb4: Merge \"ADT/Layoutlib: improved gradient drawing for perf.\" into eclair\n\nMerge commit \u002779f05bb4a502d5768f84cf975f791f3ba981e0e5\u0027 into eclair-plus-aosp\n\n* commit \u002779f05bb4a502d5768f84cf975f791f3ba981e0e5\u0027:\n  ADT/Layoutlib: improved gradient drawing for perf.\n"
    },
    {
      "commit": "38fa9eee9324b2355f28372e80dba12c1d7cc105",
      "tree": "c03e3f121b9d1d1989390743ab153b8fa5ced4b6",
      "parents": [
        "895c92a44b8bcf0aec7066c061293cafe12a76c2",
        "89d538dcca9a4cb95682c56b0c4b85e8a77442be"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 19:15:22 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 14 19:15:22 2010 -0800"
      },
      "message": "am 89d538dc: ADT/Layoutlib: don\\\u0027t draw 0-sized rectangle, AWT doesn\\\u0027t like that.\n\nMerge commit \u002789d538dcca9a4cb95682c56b0c4b85e8a77442be\u0027 into eclair-plus-aosp\n\n* commit \u002789d538dcca9a4cb95682c56b0c4b85e8a77442be\u0027:\n  ADT/Layoutlib: don\u0027t draw 0-sized rectangle, AWT doesn\u0027t like that.\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": "895c92a44b8bcf0aec7066c061293cafe12a76c2",
      "tree": "0d3ba0aa582103f8ce0be0c700f25204e82ef233",
      "parents": [
        "b8c564d0fc7b2bdcc794d63f23b21df2540d7cef",
        "240298f9e4542c487edd0337e84b50c493cbeecd"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 14 18:39:48 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 14 18:39:48 2010 -0800"
      },
      "message": "am 240298f9: Merge \"ADT/Layoutlib: always use custom gradient (java) Paint.\" into eclair\n\nMerge commit \u0027240298f9e4542c487edd0337e84b50c493cbeecd\u0027 into eclair-plus-aosp\n\n* commit \u0027240298f9e4542c487edd0337e84b50c493cbeecd\u0027:\n  ADT/Layoutlib: always use custom gradient (java) Paint.\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": "066aa99d2d114d46406e00fcc23d193d117395b1",
      "tree": "6ca5d1b11673836976a151c414677ea626b1b3cf",
      "parents": [
        "8d21bdb90573ec48491c44eca312c162e262298d"
      ],
      "author": {
        "name": "Scott Turner",
        "email": "scotty@l5computing.com",
        "time": "Thu Jan 14 21:05:17 2010 -0500"
      },
      "committer": {
        "name": "Scott Turner",
        "email": "scotty@l5computing.com",
        "time": "Thu Jan 14 21:05:17 2010 -0500"
      },
      "message": "long modifier was on the wrong argument.\n"
    },
    {
      "commit": "31ef2e77c50485ad6ed410a5d341754d6787b8e1",
      "tree": "1d3a75113d800ead908c1a4b29d29d5e3918b1d3",
      "parents": [
        "7319d94ff1ca898c36d2da8dd0cd8469d91bc5af",
        "b847fbf2098acc8c5854bbbfa1453431128c720e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 14 17:20:04 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 14 17:20:04 2010 -0800"
      },
      "message": "am b847fbf2: Merge \"ADT/Layout: support for 3+ color in linear gradients\" into eclair\n\nMerge commit \u0027b847fbf2098acc8c5854bbbfa1453431128c720e\u0027 into eclair-plus-aosp\n\n* commit \u0027b847fbf2098acc8c5854bbbfa1453431128c720e\u0027:\n  ADT/Layout: support for 3+ color in linear gradients\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": "f95e3dd23cb6cbd7a86dece3c4bafff71307721a",
      "tree": "a127e1ba72b0721e9d29cfc2fbb3de2734716ca7",
      "parents": [
        "e1a991476365cf1a8249c842e2b936db6940b0a7",
        "5e083024269e7c5bf904301a98fa6eade6fec094"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 11:36:50 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 14 11:36:50 2010 -0800"
      },
      "message": "am 5e083024: ADT/Layoutlib: shader clean-up.\n\nMerge commit \u00275e083024269e7c5bf904301a98fa6eade6fec094\u0027 into eclair-plus-aosp\n\n* commit \u00275e083024269e7c5bf904301a98fa6eade6fec094\u0027:\n  ADT/Layoutlib: shader clean-up.\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": "e1a991476365cf1a8249c842e2b936db6940b0a7",
      "tree": "820e1687f43ca879719fdd8a9255cbd06fb85f68",
      "parents": [
        "181963a0200e7c442d66f9f893da41e2b52a4d8c",
        "d3026e1618d893db55c2131d66b08bc4a6e7aaf4"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 14 10:08:37 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 14 10:08:37 2010 -0800"
      },
      "message": "am d3026e16: Merge \"ADT/Layoutlib: 2 color, linear gradient support.\" into eclair\n\nMerge commit \u0027d3026e1618d893db55c2131d66b08bc4a6e7aaf4\u0027 into eclair-plus-aosp\n\n* commit \u0027d3026e1618d893db55c2131d66b08bc4a6e7aaf4\u0027:\n  ADT/Layoutlib: 2 color, linear gradient support.\n"
    }
  ],
  "next": "63b2e616278c1b4284e1adbcc3936d0516083dcb"
}
