)]}'
{
  "log": [
    {
      "commit": "d58fb97ddf052b3ceac921ac7e936af990392b2c",
      "tree": "69314556c53d6c55ddc9078854f9db0aa270142e",
      "parents": [
        "265acc5085ad03c4c043dd33faed808b55732134"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Nov 04 18:32:00 2010 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Nov 04 18:33:05 2010 -0700"
      },
      "message": "fix xlarge support in aapt for gingerbread\n\nChange-Id: I4d8872fb839a6eadc538055215d4455af328846c\n"
    },
    {
      "commit": "c2e28dd74813799aad132673ff9d302657dd04ed",
      "tree": "af700b4c91f9135026816458018547e7303dfc32",
      "parents": [
        "2f19f56ac5bcf02ed503bdaf95b724cba8ff782d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 26 16:58:34 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 26 17:14:55 2010 -0700"
      },
      "message": "Fix issue with project resources overriding framework resources.\n\nFramework resources loaded through Drawable.createFromXml could\nbe overriden by project resources if there were loaded through\na  state list drawable where the final resource name was used\nby a project resource (of the same type).\n\nThis ensures that the XML parser knows that it\u0027s a framework\nresource being parsed and that the resource resolution uses\nthat information.\n\nChange-Id: I39cf9eba755e55f1604b968637aeecff969a558d\n"
    },
    {
      "commit": "25e96ce7b99f9736a6024d25bd65a83774c7640f",
      "tree": "2060eeb90d6cd266f526daa2f16bcfe33111a2a6",
      "parents": [
        "106165b5102be226eb8049d2f7f62d7e26034e8a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 26 11:18:39 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 26 11:18:39 2010 -0700"
      },
      "message": "Fix rendering of digitalClock/Gallery in Eclipse editors.\n\nChange-Id: I80f4f90b173529632eaf2fbc3bb5471b7ede8216\n"
    },
    {
      "commit": "a6d9c7c04c4b17d85ac70f4494777555655f3be1",
      "tree": "216d077a636fa8be9369de734e14350886c0e7ac",
      "parents": [
        "7dc08fb070ff7455e794fc81645ccb4349cd152f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 21 15:32:06 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 21 15:32:06 2010 -0700"
      },
      "message": "Implement issue #3116702: New manifest tags for supported screen sizes  DO NOT MERGE\n\nChange-Id: Iabf64d86c89d387ffbfbc39f950d308a73fe17eb\n"
    },
    {
      "commit": "a1b592e60dee58aaaf66ce430f3dbe36cf0448bb",
      "tree": "b34fee41e098d981ebff23052a0999b510a256c7",
      "parents": [
        "d4e03f37423bee383d17f7292753a5f67e497a28"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Oct 14 16:13:31 2010 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Oct 14 16:13:31 2010 -0700"
      },
      "message": "Link against the static libcrypto in external/openssl.\n\nChange-Id: Iad41ec975f9b9a4aec0b8470678320f5abe03e1f\n"
    },
    {
      "commit": "a09f1ebeb5fcdb1763b68a077f918bae87a0095d",
      "tree": "b243e46a81df7ad2e1b05d393998841d29ad6ea3",
      "parents": [
        "bd57eeafe034cf850225db403700b5dc5db5ebcc"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 14 10:25:25 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 14 10:43:15 2010 -0700"
      },
      "message": "Do not build pbkdf2gen on non-Linux hosts\n\nChange-Id: I9f575a2ca7d45102a4f67424ea5866cf750adb13\n"
    },
    {
      "commit": "bdf8034c657147226b2390eef113ff841e0d6065",
      "tree": "58be0affeafef6d38ef9e53744af1aaf1a7a8fa8",
      "parents": [
        "cebe5b2e01f8ebbf9089aebc386caecea232df76",
        "3b1abba6bbc895d63da3e82e9b158c01bd12eddd"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 13 18:29:43 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 13 18:29:43 2010 -0700"
      },
      "message": "Merge \"OBB: use PBKDF2 for key generation.\" into gingerbread"
    },
    {
      "commit": "3b1abba6bbc895d63da3e82e9b158c01bd12eddd",
      "tree": "1296e8c25a2927c94783eda83100c061fc9fe379",
      "parents": [
        "dfc07279fc6205c38f5f39cb5ba4f0aef6b593a4"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 13 15:00:07 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 13 18:25:33 2010 -0700"
      },
      "message": "OBB: use PBKDF2 for key generation.\n\nSwitch to using PBKDF2 for the key generation for OBBs. Any previously\ngenerated OBBs will stop being read correctly. A small pbkdf2gen program\nis available to allow generation of appropriate keys with the salts.\n\nBug: 3059950\nChange-Id: If4305c989fd692fd1150eb270dbf751e09c37295\n"
    },
    {
      "commit": "3394db7d9432053e56d86b3f24e64deeb3099950",
      "tree": "5c3f4108526de568b18a583e0be61b7ac1b29d26",
      "parents": [
        "a31cbd61bc53730d756464b0c273475c4f738066",
        "eaca10e2d0a61c482b6a1799ca9f51d8f67482cb"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Oct 13 16:59:12 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 13 16:59:12 2010 -0700"
      },
      "message": "Merge \"Regenerate preloaded classes for Gingerbread.\" into gingerbread"
    },
    {
      "commit": "eaca10e2d0a61c482b6a1799ca9f51d8f67482cb",
      "tree": "0a8d7c05494fe42eacff02ead4a0275909763634",
      "parents": [
        "844a6b3ccaff1ad1443ad985e4527b733ce97c0e"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Oct 12 21:35:56 2010 -0700"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Oct 13 16:55:26 2010 -0700"
      },
      "message": "Regenerate preloaded classes for Gingerbread.\n\nUnlike previous releases where the set of classes-to-be-preloaded\nwas generated on a first-generation device (G1 and MyTouch 3G), this\nround I used a second-generation device, a Nexus One. As a consequence,\nclass loading is faster (win) and fewer classes hit the 1250ms threshold.\nInstead of sharing classes based on load time alone, classes are now shared\nbased on the number of applications loading them.\n\nChange-Id: I18f7aa3e7e6258818871b3968b515c06314371b3\nhttp://b/2546002\n"
    },
    {
      "commit": "6f51fc14d0c3df8f9153ae5df992cc2731f099c8",
      "tree": "ea1dc04c2e55af8a93c1bc3c7d08ce00182dca15",
      "parents": [
        "527d8bbd79c1ff2b6e24d19fe9e7a1ecdb72891a"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Wed Oct 13 14:33:43 2010 -0700"
      },
      "committer": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Wed Oct 13 14:33:43 2010 -0700"
      },
      "message": "Adding a new \u003cuses-gl-texture/\u003e tag, to be used to enable apps to specify\nfiltering based on support for OpenGL ES texture and texture compression\nformats.\n\nChange-Id: I993209a673579b296007ae2ba830d0275770dd11\n"
    },
    {
      "commit": "0a226d84e1e67fc5a180d65246ed942266701fb8",
      "tree": "7ade3027b041ce09f500d92eafad958350cf876c",
      "parents": [
        "70f1a3b8a0fcf332e35f87be85ae3a9e37a85e9c"
      ],
      "author": {
        "name": "Anthony Newnam",
        "email": "anthony.newnam@garmin.com",
        "time": "Wed Sep 01 12:06:04 2010 -0500"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Oct 06 18:39:19 2010 -0700"
      },
      "message": "Avoid pre-processing images when they won\u0027t be used\n\nChange-Id: I24db3645c399f66dc7cc0e85909ce34b68ff829e\n"
    },
    {
      "commit": "f8e4c1f57bbb658f53995443b0f175e50a2fc814",
      "tree": "95673dc259dc4636da7618f824e9a923d168f8ec",
      "parents": [
        "a29643a6455df7d3d615cdc45e11c437fe4b6cee"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 04 17:41:03 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 04 18:11:50 2010 -0700"
      },
      "message": "Parser is optional in obtainStyledAttributes.\n\nIf the parser is null it just means the default style/values are\nused.\n\nChange-Id: I5ff3d632fd5dfc5a1ce42796b2fef7b30f9fbf34\n"
    },
    {
      "commit": "407f625a9b8e356e765a5ec587c443af1f3aadb5",
      "tree": "f2cb0a3b75327c8ffee2e1d0f351d35431305f24",
      "parents": [
        "eb6e22f29ded58e7e51702c34878fd01e20ff802"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 04 11:31:17 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 04 13:58:56 2010 -0700"
      },
      "message": "Add new API to find out whether external storage is removable.\n\nThis is implemented based on whether we are using the \"nosdcard\"\nproduct.  Needed to tweak aapt to allow use of the product attribute\nwith other resource definition tags besides strings.\n\nChange-Id: I49922d23b52a34183a8e2f4d2515adaf1fc9149a\n"
    },
    {
      "commit": "12ffd9bf4c2cc9075ea7602b4932f823ba940f80",
      "tree": "5799aa5df8bde6b1f641d704b8909d0549fd1784",
      "parents": [
        "2942391801b79816c5eb77d7ac94c4a65f26af48"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 01 12:56:59 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 01 14:02:47 2010 -0700"
      },
      "message": "Add \"none\" for vold and deprecate mkobb -c\n\nIf vold isn\u0027t told \"none\" for the key, it will try to mount it as an\nencrypted container.\n\nAlso remove the -c option from mkobb since it can be triggered by\nincluding a key as well.\n\nChange-Id: I40a8ff3f778bfda682312630e6687ecc14b51844\n"
    },
    {
      "commit": "735de3b38abbd6564082a819377673ee593744a6",
      "tree": "ec309587616c5abbc49df83d7d21b6a3b3e9dfbd",
      "parents": [
        "27358a69b33eaa268ee75ef778ec824c8085adcc"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 30 14:11:39 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 30 17:25:05 2010 -0700"
      },
      "message": "Hash keys with MD5; track IBinders not IInterface\n\nUsing a plaintext password doesn\u0027t work unless it\u0027s a certain length, so\njust hash the plaintext password with MD5 to make it the right length\nfor the twofish encryption.\n\nTracking the IInterface doesn\u0027t make much sense since it\u0027s different\neach time, so track the IBinder instead. That way we can unlinkToDeath\nthe binder when the last thing it\u0027s holding onto goes away.\n\nChange-Id: Id828d25b4d74f27e9d8b4bfb3909c964469cc473\n"
    },
    {
      "commit": "c486da4887811bce4895199c3116616b3638f35a",
      "tree": "2f8abb1491b97169dca7a85be2e5c4bfdb54d285",
      "parents": [
        "65a5ba45559e88a50c258d794a1728498c248376"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Sep 28 14:33:58 2010 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Sep 28 14:33:58 2010 -0700"
      },
      "message": "Call functions to calculate deps and classes.jar\n\nInstead of hard-coding them.\n\nChange-Id: Ia5818a1a69efb0964d5aa7de7e8d30ef04dfeccc\n"
    },
    {
      "commit": "8313fc7e94e46e5cc09f457a15a771a325b9f74f",
      "tree": "d68bf554b0d92a64cde72e58178e60d4d30b521d",
      "parents": [
        "08c09b0f84b23627b4cd02e1b9a642952fbd2e7f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 26 18:34:53 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 26 21:31:47 2010 -0700"
      },
      "message": "Allow all apps to call ContentResolver.getType().\n\nI can\u0027t find the bug number for this, but it is needed for some things\nwe are doing where the app building an intent may not have access to the\nURI in the data field.  This is for HC, but doing in GB to avoid introducing\nintegration issues.\n\nChange-Id: I0cac971854198b18775d2a73deb80f23431bfbe2\n"
    },
    {
      "commit": "90964040cabfc67f92a7c3322a02401bb6f8ae82",
      "tree": "52f1ce1de971a071026a12e145837e015e60d26a",
      "parents": [
        "89647b1172cdf40a3681922150122b0bd2ea83f1"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Sep 15 15:59:21 2010 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Sep 23 10:32:47 2010 -0700"
      },
      "message": "Add an aapt option to allow string variations for different devices.\n\nThe --product option to aapt is a comma-separated list of characteristics\nof the device being built for.  For example, --product nosdcard,grayscale\nfor a device with no SD card and a grayscale screen.\n\nStrings can specify a product\u003d\"characteristic\" option to cause that version\nof the string to be used only for that type of device.  All such strings\nshould also specify, at the end of the block, product\u003d\"default\", which\nwill be used if none of the variations match.  For example:\n\n\u003cstring name\u003d\"choose\" product\u003d\"bw\"\u003eChoose black or white\u003c/string\u003e\n\u003cstring name\u003d\"choose\" product\u003d\"grayscale\"\u003eChoose a shade of gray\u003c/string\u003e\n\u003cstring name\u003d\"choose\" product\u003d\"default\"\u003eChoose a color\u003c/string\u003e\n\nThe default characteristic will also be used when no --product option\nis specified.\n\nChange-Id: Ie6c1505599e02e15b7818e8be6ec47bc6ce71aaa\n"
    },
    {
      "commit": "30c1102fecda5e9ef071c58c0e54b721961ae4e3",
      "tree": "d7b24893fb749d99db005a7cc10ae424c3e9de12",
      "parents": [
        "181e5ea8087360742b3ed0a7f2e6f8f8baa0a760"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 21 10:13:19 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 21 10:13:19 2010 -0700"
      },
      "message": "Add image creator helper script for OBBs\n\nChange-Id: Id3f2b158077e8d104582e0ac720c2428c3ba4d97\n"
    },
    {
      "commit": "43b6803095e41e6a1cf844a77813c6cdbdc84ec3",
      "tree": "19936d54d151179603e2a7cb7e3675fbdbe160a5",
      "parents": [
        "d180232e92b78067beb7f84d7f3d1d21865f0594"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 02 17:14:41 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 02 17:14:41 2010 -0700"
      },
      "message": "Implement #2964234: Add support for \u003cuses-package\u003e element to aapt\n\nChange-Id: Ifb381f387cab7e5a99006691e330d0e3d9d0f250\n"
    },
    {
      "commit": "6487b099231b1e5d36ae37a921399b028b3b3ad9",
      "tree": "25018182d96a759798431af7230de27202fb5543",
      "parents": [
        "7ec7b9970cc3a6311bf043e228991adf24c43523"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 31 10:45:31 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 31 11:07:56 2010 -0700"
      },
      "message": "Add a --debug-mode option to aapt.\n\nWhen passed (with no needed parameters) to the aapt command line,\naapt will insert debuggable\u003dtrue in the application node of the manifest\nautomatically.\n\nThis is to be used by the SDK tools to make true \"debug\" builds\nthat require no code/file change.\n\nChange-Id: I6f0a7af7b7d51f26bb0ec012e6f142a6060b8618\n"
    },
    {
      "commit": "2e7427f39ec15dcb43cc1247372b53980be11d38",
      "tree": "72ee7cb1052c1acbad4f338fb20841d89227052b",
      "parents": [
        "50395e80718e77d27ec5e2d474b255e05de68d82",
        "fb2a9467ad77336edbf2a1a272dbe6ec30ef8a1b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 25 17:20:29 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 25 17:20:29 2010 -0700"
      },
      "message": "Merge \"Add LFH offset to verbose list of APK\" into gingerbread"
    },
    {
      "commit": "fb2a9467ad77336edbf2a1a272dbe6ec30ef8a1b",
      "tree": "584fffa345cccc738048b2d7930c0b4c89a48773",
      "parents": [
        "6b6ae996b2e84af030397cff3a7f0087de93e01c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 25 07:36:31 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 25 07:38:33 2010 -0700"
      },
      "message": "Add LFH offset to verbose list of APK\n\nThe Local File Header (LFH) offset is printed in debugging cases when\nthe platform is inspecting APKs. This adds the LFH offset field to the\nlist of contents of an APK, so that it can be checked easily against the\nCentral Directory (CD).\n\nChange-Id: I08f9a13256bfe6563c1a963c4f0289789b2e7857\n"
    },
    {
      "commit": "74b58fc58bf6d2919049cf8ca5d7467a292049cb",
      "tree": "caffe9225c01e268a3dc38c5885ab6f776866b5b",
      "parents": [
        "d0ad67ad84e254cdf34963ad4152ca7158df5eab"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 24 20:20:50 2010 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 24 20:20:50 2010 -0700"
      },
      "message": "Fix linux 64 build\n\ngit cherry-pick -e 49416bc658e37a0f4ae4f2b7b8582dd1606fba0f\n\nChange-Id: I37a689acea8aeb5d6ac92ee56b077bafe4fba170\n"
    },
    {
      "commit": "f43489d7d5e1c0c5c9a7e54c22845fcb99765f81",
      "tree": "707c054410caa596b4dc7921bc789558740574ad",
      "parents": [
        "39792d2262352ae775091876d5488d2412a2ff92"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 20 12:44:33 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 20 12:44:33 2010 -0700"
      },
      "message": "Fix aapt dump badging to support xlarge screens.\n\nChange-Id: Ieeb757cd48ad9b3f46c5e4aed9d5efaeac834049\n"
    },
    {
      "commit": "02ca31fbae9f35dd30f79de6927fae11b549391a",
      "tree": "dc037f02f42db20ba1f086e707fd53a71ea4c4c5",
      "parents": [
        "baf3869b88ab4e31f792dbe08f61725bc3619ea8"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 12 07:36:02 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 18 09:34:58 2010 -0700"
      },
      "message": "Add OBB flags to support overlays\n\n* Add flags field in OBB footer to support overlays.\n\n* Remove unused \u0027crypto\u0027 and \u0027filesystem\u0027 fields in obbtool (could\n  later be supported in the \"flags\" field of the OBB footer).\n\n* Add notes to document OBB classes before shipping.\n\nChange-Id: I386b43c32c5edef55210acb5d3322639c08010ba\n"
    },
    {
      "commit": "e05184f271f9882a5bf828e353aea40e0c06ff69",
      "tree": "52e93955dc0d56685091447c0e981d7c5b139f0a",
      "parents": [
        "3f442ece257d416b48f7803a4cc263f0215faa0d",
        "561a91824fbfcdae9031fb2cdbb745578a969981"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Aug 13 15:26:21 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 13 15:26:21 2010 -0700"
      },
      "message": "Merge \"Output proguard keep flags for fragment classes.\" into gingerbread"
    },
    {
      "commit": "244152bfb9020341953d3e541c85eb3961806378",
      "tree": "ca7aaded58d638ce215d070f273083630eaad4e7",
      "parents": [
        "4f170821678099010ec593d2b5a081e0f8adf92d",
        "98ee11ddb7996b332d5e31f8bdff69631c8d3725"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Fri Aug 13 14:54:15 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 13 14:54:15 2010 -0700"
      },
      "message": "Merge \"Change aapt\u0027s warning message to suggest formatted\u003d\"false\", not \"true\".\" into gingerbread"
    },
    {
      "commit": "98ee11ddb7996b332d5e31f8bdff69631c8d3725",
      "tree": "fb8460984cb868ea3dcd59d7293a0d384332ef87",
      "parents": [
        "ae3a1f45951aeb716e1f6b9a99a09838eb55dab4"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Fri Aug 13 14:49:55 2010 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Fri Aug 13 14:49:55 2010 -0700"
      },
      "message": "Change aapt\u0027s warning message to suggest formatted\u003d\"false\", not \"true\".\n\nTrue is the default and specifying it won\u0027t suppress the warning.\n\nChange-Id: I8ecc919b4059bf3321e781649cb46dd2d3807592\n"
    },
    {
      "commit": "588f228d6a3e3b254fbc1f13f29ee47e13a669c1",
      "tree": "22db4977d6e71d3148f475eefcccbb16003be7ed",
      "parents": [
        "876247784ee6202066abdefd8366f2e09e681fab"
      ],
      "author": {
        "name": "Ficus Kirkpatrick",
        "email": "ficus@android.com",
        "time": "Fri Aug 13 14:13:08 2010 -0700"
      },
      "committer": {
        "name": "Ficus Kirkpatrick",
        "email": "ficus@android.com",
        "time": "Fri Aug 13 14:20:51 2010 -0700"
      },
      "message": "Add --max-res-version flag to aapt.\n\naapt will ignore any versioned resource directories over the\nspecified version (if used).  e.g. --max-res-version\u003d6 will\ncause layout-land-v7 to be ignored.\n\nMerged from froyo.\n\nChange-Id: Ia4eabae535b95b75d18b0c83135d44ed9a95b9eb\n"
    },
    {
      "commit": "561a91824fbfcdae9031fb2cdbb745578a969981",
      "tree": "58ca329e4e7f834396c325019d6254dc70ee7d40",
      "parents": [
        "ae3a1f45951aeb716e1f6b9a99a09838eb55dab4"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Aug 13 13:56:07 2010 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Aug 13 14:06:58 2010 -0700"
      },
      "message": "Output proguard keep flags for fragment classes.\n\nChange-Id: I28c10fbf18b91f8ba3dfc2575cd41215f65f11ec\nBug: 2916847\n"
    },
    {
      "commit": "6e7ac5f0bceddf51947fbf3b376e278df0735603",
      "tree": "36772b5b1e134baddbc24b73bb59ee701c3acc58",
      "parents": [
        "a02b8b05dd1e8b8cf169e1f89542ef835b11fc13"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jul 19 10:31:34 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 11 11:24:41 2010 -0700"
      },
      "message": "Initial tool for OBB manipulation\n\nAdd \"obbtool\" host command for adding, removing, and querying Opaque\nBinary Blob (OBB) information from a file.\n\nChange-Id: Id2ac41e687ad2a500c362616d6738a8ae7e8f5c3\n"
    },
    {
      "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"
    }
  ],
  "next": "beb0993c6aa7ccaf4e1ec88355a28f4c3ea93c7a"
}
