)]}'
{
  "log": [
    {
      "commit": "4a223cdde591b5f3000a3de071d41c833a387578",
      "tree": "5fa0b13bd0218f9250b4901cc7e1ccc28f856e61",
      "parents": [
        "6f3a75e13b86a3f40fe34e3ebd17b118791a73a4"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Mon Mar 14 15:53:23 2011 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Mon Mar 14 15:53:23 2011 -0700"
      },
      "message": "Add screen layout size as one of the resource filtering axes.\n\nSo that we can add screen layout size such as\n\"small/normal/large/xlarge\" to PRODUCT_LOCALES to filter unwanted\nresources. We already handle screen density this way.\nBug: 4086309\n\nChange-Id: I0867e22a825faea0e100d8a0075f0f5cb7c0c964\n"
    },
    {
      "commit": "02feeb4b2bb6515491cf3dd7ae2b204caac81bae",
      "tree": "a9da1ef9057f38d262425ba2a8b83164c25d156b",
      "parents": [
        "9d97b63d0e0c7c9deb2d140c1dd579b51f52c1af"
      ],
      "author": {
        "name": "Josh Stone",
        "email": "cuviper@gmail.com",
        "time": "Mon Jan 17 18:34:11 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jan 23 16:00:36 2011 -0800"
      },
      "message": "aapt: Allow raw \"%\" in unformatted string-arrays\n\nCommit 15fe2cb added format checking for translatable strings, enforcing\nthe use of positional args.  This check can be disabled on \u003cstring\u003e\nvalues with translatable\u003d\"false\" or formatted\u003d\"false\".  But they didn\u0027t\ncheck for those attributes on \u003cstring-array\u003e, so some of CM\u0027s strings\nfail when they\u0027re not really format strings, just because they contain\npercent signs.  (e.g. brightness widget\u0027s \"Auto/Dim/40%/100%\")\n\nSo now the formatted/translatable attributes are checked in string-array\ntoo, and we can restore our proper percent signs.\n\nChange-Id: I3478ab7e0b939e61fe0cec20201ac55096264080\n"
    },
    {
      "commit": "7c71023b7f5aafac09bd2f0425fccb5fe2d22b27",
      "tree": "a3c86b0da5f22866d64c8d5ff61b6e0689a8453c",
      "parents": [
        "83d97c8c7ddff9374f876bef48758414a7775cb1"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Nov 22 22:28:37 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Nov 22 22:28:44 2010 -0800"
      },
      "message": "Add knowledge of mipmap to aapt\n\nNew mipmap drawable type that does not get filtered according to\nconfiguration. Useful for things that get built as part of the system.\n\nChange-Id: I556033d065e504079271dce79c23c90d3c387ce4\n"
    },
    {
      "commit": "82849afd719037968ddcb58e14cec8685f702216",
      "tree": "a16549c00299cb9ed039a2d1428c0b5561b378f1",
      "parents": [
        "a9570ab0439e7a734ef4ffc65e55dbf7f433d270",
        "3442611ee11b2987c83054fe3c7ed5521f27f052"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sat Nov 06 16:25:03 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 06 16:25:03 2010 -0700"
      },
      "message": "am 3442611e: am 5580e44c: Merge \"Support changing style parent in overlays\"\n\n* commit \u00273442611ee11b2987c83054fe3c7ed5521f27f052\u0027:\n  Support changing style parent in overlays\n"
    },
    {
      "commit": "3442611ee11b2987c83054fe3c7ed5521f27f052",
      "tree": "ff4a2db0081d7c404b0c5a1bdc4ac28768272405",
      "parents": [
        "8806fc729b96bf806806ef8d82147d59abfc1536",
        "5580e44c250944f5cd011b2682eea5cc2de9706c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Nov 05 14:05:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 05 14:05:41 2010 -0700"
      },
      "message": "am 5580e44c: Merge \"Support changing style parent in overlays\"\n\n* commit \u00275580e44c250944f5cd011b2682eea5cc2de9706c\u0027:\n  Support changing style parent in overlays\n"
    },
    {
      "commit": "58520b24d40bb2587f394a52535dab4f2736bab1",
      "tree": "09b3f3ed6d4c68f0084df07a8b880884d109e071",
      "parents": [
        "5e9f64ce24b3381ee48f9e12242aba5216f136a4",
        "10d5b0966d1b6ab0e3b63c71d5325403e75b647e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 04 14:54:59 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 04 14:54:59 2010 -0700"
      },
      "message": "resolved conflicts for merge of 10d5b096 to master\n\nChange-Id: Id5c6ba651f72b48f0d70ee2ca64a6c9adf5e74f7\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": "6f27ab8bd4aca5a43f6bf93cd68c43dde825bfa1",
      "tree": "40eaf1634c582ef040e5157fc2bbf73ac16b9106",
      "parents": [
        "7eb805707fc512f1711fbf00eb5eec2472a0bae1",
        "9c70835896b6c078ac4c8b2e30cb6cfba70bb9d7"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Sep 23 13:52:00 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 23 13:52:00 2010 -0700"
      },
      "message": "am 9c708358: am 37cedce1: Merge \"Add an aapt option to allow string variations for different devices.\" into gingerbread\n\nMerge commit \u00279c70835896b6c078ac4c8b2e30cb6cfba70bb9d7\u0027\n\n* commit \u00279c70835896b6c078ac4c8b2e30cb6cfba70bb9d7\u0027:\n  Add an aapt option to allow string variations for different devices.\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": "2fda9f45623e888f71c6ea769305ccc4d9e76af2",
      "tree": "6350705338ec0eacd6f6d74653cca73cde772609",
      "parents": [
        "c708e38356e9c381b640ef96db3b0b0fdd41d433"
      ],
      "author": {
        "name": "Martin Nordholts",
        "email": "martin.nordholts@sonyericsson.com",
        "time": "Wed Jun 02 15:42:28 2010 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonyericsson.com",
        "time": "Tue Aug 17 13:18:59 2010 +0200"
      },
      "message": "Support changing style parent in overlays\n\nPackage overlays makes it possible for vendors to tweak the look of\nthe platform and the applications without touching any platform or\napplication code directly. This makes package overlays an important\nmechanism in the Android build system.\n\nThere is currently a limitation that forbids changing the parent of a\nstyle. If vendors could change the parent of e.g. ‘CalendarTheme’\nfrom Android’s vanilla ‘Theme’ to ‘VendorTheme’, then vendor\nspecific adjustments could be done without changing any code directly.\n\nFrom looking at the code it can be seen that the parent value of a\nstyle is stored temporarily in ResourceTable::Entry::mParent while\noverlays are gone through in buildResources(), and processed (in\nResourceTable::Entry::assignResourceIds()) at first after all overlays\nhave been handled, so there aren’t any obvious reasons why changing\nparent in an overlay should be forbidden.\n\nChange-Id: I5969bb8aab90df437e1967fc504cc0da79107d13\n"
    },
    {
      "commit": "f1ff21ac62a51f5ba8ca0821ea8a90f70957e25d",
      "tree": "93b20482d80f3008a887e0c89eaa9a7cd3ad61ca",
      "parents": [
        "b5c49c8bb1e830ba934c7fbceec9409b89ead4a9"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Mon Jun 14 17:34:04 2010 +0100"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jun 25 11:02:15 2010 +0100"
      },
      "message": "Fixes a few minor problems with AAPT\n\n- Fixes casting problems with stricter compilers\n- Adds a couple of missing ifdef guards\n\nThis is a first step toward being able to generate APKs on the fly on the device.\n\nBug: 2766918\nChange-Id: Icaaee5a4032afa313256add321b447443861dd85\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": "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": "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": "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": "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": "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": "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": "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": "19138468caf7050d482dc15f35a344eab11bb756",
      "tree": "ea1f96c5bcab356355ab05d315abfa66a7f888c4",
      "parents": [
        "6be01bf207077ffbdcd3879250171a26ec805835"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Dec 04 09:38:48 2009 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Dec 07 15:14:15 2009 -0800"
      },
      "message": "Optional use of UTF-8 strings in resource bundles\n\nAllows the use of UTF-8 for packing resources instead of the\ndefault of UTF-16 for Java. When strings are extracted from the\nResStringPool, they are converted to UTF-16 and the result is\ncached for subsequent calls.\n\nWhen using aapt to package, add in the \"-8\" switch to pack the\nresources using UTF-8. This will result in the value, key, and\ntype strings as well as the compiled XML string values taking\nsignificantly less space in the final application package in\nmost scenarios.\n\nChange-Id: I129483f8b3d3b1c5869dced05cb525e494a6c83a\n"
    },
    {
      "commit": "59ad275e937bb3c32e59bc01d86f484e7b4bdbe1",
      "tree": "d24f9a40a7428257c2de8dbd4559bb375b06b0dc",
      "parents": [
        "5a4d66965d3c5061d47201fcaa62c90d126e7187"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Nov 03 15:33:37 2009 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Nov 03 15:33:37 2009 -0800"
      },
      "message": "doc change: fix broken R.styleable formatting (caused by missing periods). Adjust table markup.\n\nBug: 2230588\nChange-Id: I54545dfd9d26acef567e586cfc916f6b883a4de7\n"
    },
    {
      "commit": "93d72516994277acdd3894a169ec1f1cbc50db97",
      "tree": "8a12fcb8bb24d01221f4c401ef672ea69274fbfc",
      "parents": [
        "6e478d7afb33eff4efe704a16b1a05435b431062"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Sep 02 18:23:57 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Sep 02 18:23:57 2009 -0700"
      },
      "message": "Fix compilation of add-resource tag.\n\nIt used the wrong tag-type to find the end of itself.\n"
    },
    {
      "commit": "c87d25215c842cea370c6a86ce67585fa8da4900",
      "tree": "221eb50bb658c745f0ce5c56588193d565a1ccf3",
      "parents": [
        "b7559e02803266e5fa9f4496174bc343ecd245ab"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Sep 01 15:20:30 2009 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Sep 01 15:20:30 2009 -0700"
      },
      "message": "Make it an error to use a bare apostrophe in aapt, and adjust warnings/errors.\n\nIn practice, no one ever writes an apostrophe in an aapt string with the\nintent of using it to quote whitespace -- they always mean to include a\nliteral apostrophe in the string and then are surprised when they find\nthe apostrophe missing.  Make this an error so that it is discovered\nright away instead of waiting until late in QA or after the strings have\nalready been sent for translation.  (And fix a recently-introduced string\nthat has exactly this problem.)\n\nSilence the warning about an empty span in a string, since this seems to\nannoy people instead of finding any real problems.\n\nMake the error about having a translated string with no base string into\na warning, since this is a big pain when making changes to an application\nthat has already had some translations done, and the dead translations\nshould be removed by a later translation import anyway.\n"
    },
    {
      "commit": "58c27a0a03f573791935116fa35f6a7c8bf93896",
      "tree": "edece19830db9d14352390f5ea6e36cc6d8ccc17",
      "parents": [
        "364277866f6433560dc0a32047884a954605785b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 13 13:36:00 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 13 13:36:00 2009 -0700"
      },
      "message": "Allow overlays to add resources.\n"
    },
    {
      "commit": "dd931864209eac0b4182d7a0d1ca965fcc3b8c03",
      "tree": "27cd6d92392b837373bf97682d91834e7c4238d8",
      "parents": [
        "3cdff8133b96b672523c330bbc1adcab59125b9f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jul 13 13:02:33 2009 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jul 13 14:14:01 2009 -0700"
      },
      "message": "Format aapt warnings the same way as other compiler warnings\n(\u0027warning: \u0027 instead of \u0027WARNING: \u0027 or \u0027WARNING \u0027)\n"
    },
    {
      "commit": "f878e2d80c3a0afefe3b018d232df6066379e1d5",
      "tree": "7a5ad87b37729db613202666cea37e525dbd53a3",
      "parents": [
        "1e3d1b4b83452286b000b8cd1997e5aef97fe2a7"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Jun 09 09:14:20 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Jun 09 16:23:35 2009 -0700"
      },
      "message": "Make aapt Error out when an overlay adds a string.\n\nFinal added check (I think) for 1585775 - not letting overlays add\nresources.\n\n\tmodified:   ResourceTable.cpp\n\tmodified:   ResourceTable.h\n"
    },
    {
      "commit": "1aa8170e6a448afad86e5d62927d3b8ca4cd9707",
      "tree": "911e494fa0ab405fa8c5cb4271f8a0907a583d24",
      "parents": [
        "5d16ac5eb6c4a468cabc39bdd00eac1759993db5"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Jun 05 15:59:15 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Jun 05 16:09:24 2009 -0700"
      },
      "message": "Add per-named-item overlay ability in res xml.\n\nFixes 1899451.\nAlso errors out if you add a bag via an overlay (which would renumber\nresources).  Note that you can still add elements within the bag as they are\nnot issued resource IDs.  So for example you can now modify the framework\nthemes.xml file without copying the entire file.\n\nAll bag types are now modifable except non-named bag types (how would you\naddress which element to replace?):\n    array\n    string_array\n    integer_array\n"
    },
    {
      "commit": "f479aa0900e9a85afdc78b1048684e37579ebf23",
      "tree": "1337f0f101bfe38ec5b182201b0d1b6dbb4cafb0",
      "parents": [
        "b204d4f12773ec67c7f0ded41cb111018f154476"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 20 16:01:06 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 20 16:30:59 2009 -0700"
      },
      "message": "Add padding to public.xml to avoid breaking from auto-merges.\n"
    },
    {
      "commit": "a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3d",
      "tree": "75e0804e6628f9bb818c5f6f918315640c721d4b",
      "parents": [
        "ba2a3a1b32e242eea4e97c927d886e8987fde3d4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 13 15:06:13 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 15 18:02:47 2009 -0700"
      },
      "message": "Implement compatibility support for WRITE_SDCARD permission.\n\nNow old applications will automatically be granted it.  Also renamed it from\nSDCARD_WRITE to WRITE_SDCARD to be consistent with our other permissions,\nand re-arranged how we do targetSdkVersion to actually be usuable for this\nkind of stuff.\n\nNote that right now this results in basically all apps being given the\nWRITE_SDCARD permission, because their targetSdkVersion is not set.  I will\nbe dealing with that in a future change.\n"
    },
    {
      "commit": "32c2c902200e894c6e887218a337334d81013be5",
      "tree": "8d376335073d978468ea394f5a1e917dbaf002bf",
      "parents": [
        "c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri May 08 11:45:37 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri May 08 11:45:37 2009 -0700"
      },
      "message": "Fix 1840639 to support overlays with zz_ZZ.\nEverything but strings worked fine before but a new default string would generate a build error.\n"
    },
    {
      "commit": "9411a39866b749ad0a47f15083f311847eb79178",
      "tree": "9b07caf5f0f48bb19c9e9bf5d185e82a3304a781",
      "parents": [
        "80e12129773644bd4573207d92119beb9f612c82"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "",
        "time": "Fri Apr 03 16:44:30 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Apr 03 16:44:30 2009 -0700"
      },
      "message": "AI 144547: Fix change 144342 by making it active only during overlay processing.\n  BUG\u003d1754390\n\nAutomated import of CL 144547\n"
    },
    {
      "commit": "4b4f4a908895bc0ba63f929bfdc02eec22c0f6e5",
      "tree": "27ad907b6d1999c14bf04f4d2adb3c2b8ff85e90",
      "parents": [
        "2a3ce2825182aab7c6e555f69b77e2c3d42bd660"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "",
        "time": "Thu Apr 02 16:55:50 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 02 16:55:50 2009 -0700"
      },
      "message": "AI 144342: Fix bag (string-array,etc) behavior with overlays.\n  We used to replace elements in the default with elements from\n  the overlay.  This change causes us to empty the array first\n  so if the overlay array is smaller we don\u0027t end up with elements\n  from the default array showing through at the end of the array.\n  Ex: [A,B,C] and overlay [D] should give [D] but used to give\n  [D,B,C].\n  BUG\u003d1754390\n\nAutomated import of CL 144342\n"
    },
    {
      "commit": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d24b8183b93e781080b2c16c487e60d51c12da31",
      "tree": "fbb89154858984eb8e41556da7e9433040d55cd4",
      "parents": [
        "f1e484acb594a726fb57ad0ae4cfe902c7f35858"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@130745\n"
    },
    {
      "commit": "22f7dfd23490a3de2f21ff96949ba47003aac8f8",
      "tree": "41bc290bb2f1f08a0e37cfda4955742a85d42ecf",
      "parents": [
        "9266c558bf1d21ff647525ff99f7dadbca417309"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jan 20 14:03:58 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jan 20 14:03:58 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@127101\n"
    },
    {
      "commit": "9266c558bf1d21ff647525ff99f7dadbca417309",
      "tree": "1630b1ba80f4793caf39d865528e662bdb1037fe",
      "parents": [
        "b798689749c64baba81f02e10cf2157c747d6b46"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:10 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:10 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@126645\n"
    },
    {
      "commit": "b798689749c64baba81f02e10cf2157c747d6b46",
      "tree": "da394a395ddb1a6cf69193314846b03fe47a397e",
      "parents": [
        "f013e1afd1e68af5e3b868c26a653bbfb39538f8"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@125939\n"
    },
    {
      "commit": "f013e1afd1e68af5e3b868c26a653bbfb39538f8",
      "tree": "7ad6c8fd9c7b55f4b4017171dec1cb760bbd26bf",
      "parents": [
        "e70cfafe580c6f2994c4827cd8a534aabf3eb05c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "54b6cfa9a9e5b861a9930af873580d6dc20f773c",
      "tree": "35051494d2af230dce54d6b31c6af8fc24091316",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
