)]}'
{
  "log": [
    {
      "commit": "7b172a49a90ea6784dbfe0002474f9d4fd4ace1a",
      "tree": "05db15b0b2b922fa644199d48d8769624bacbe34",
      "parents": [
        "e4d08f11c49ff4c554df80c12fa2b5b04831e2f5",
        "58ed5d748c0b9b64845975ef5844ad313de7c3f6"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 13:08:25 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 07 13:08:25 2012 -0800"
      },
      "message": "am 58ed5d74: am 768d9e1a: Merge \"Correct executable bit for source files\"\n\n* commit \u002758ed5d748c0b9b64845975ef5844ad313de7c3f6\u0027:\n  Correct executable bit for source files\n"
    },
    {
      "commit": "3a084af2e90849aaa8beb3a610189e3399c63ea0",
      "tree": "ba4b87d227674fd68f9ea395649fde32778620f0",
      "parents": [
        "9d547d6934f64189e368c0b190fb4cf49c95a557"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 10:19:47 2012 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 10:27:31 2012 -0800"
      },
      "message": "Correct executable bit for source files\n\nMany media files and source code files were marked as executable in Git.\nRemove those.\n\nAlso a shell script and python script were not marked as executable.\n\nChange-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5\n"
    },
    {
      "commit": "7b7578184567f4e4f0740ce935cc192765410cca",
      "tree": "481b803ceb22262b36810cac3f31112527eeda12",
      "parents": [
        "93941683c22d12ad88c0b442f9d00e20a351f15a"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Wed Sep 19 18:13:44 2012 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Fri Sep 21 13:48:40 2012 -0700"
      },
      "message": "Bug #6110465. Optical bounds support for all ViewGroup subclasses.\n\nThis CL generalizes the optical bounds support previously contained in the\nGridLayout implementation and then incorporates the new form directly into\nthe base View and ViewGroup implementations. After this change, GridLayout is\nreturned to an \u0027optical bounds\u0027 unaware state, and all layouts (including non-platform\nones) inherit the ability to perform their layout operation by optical (rather than clip)\nbounds using their existing implementations.\n\nThe \"layoutMode\" property of ViewGroup and its associated constants are\nmade public in this CL.\n\nChange-Id: Ic1bba0e1c6fc14da4aeab0b28c975d562b5f82dd\n"
    },
    {
      "commit": "7a23b49a8ceb07d3fa12c45fd42cd16131fd746a",
      "tree": "3d0ba87bbc84830260a01a34d0abb5c13d6dd4d3",
      "parents": [
        "c887843b19c5a31bcd14e0b29b035d2a6e1e6149"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Tue Apr 24 22:12:36 2012 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Fri Apr 27 16:46:57 2012 -0700"
      },
      "message": "Fixes for optical bounds feature.\n\n1. Make the feature opt-in (ViewGroup::layoutMode defaults to CLIP_BOUNDS) without inheritance.\n2. Rename COMPONENT_BOUNDS to CLIP_BOUNDS.\n3. Rename LAYOUT_BOUNDS to OPTICAL_BOUNDS.\n4. Complete GridLayout implementation.\n5. Change the default_gap between components to 8dp, to align with the Style Guide.\n\nChange-Id: I8d40dfc5f4ca469f6424eb3ff60d07bec56e3a9f\n"
    },
    {
      "commit": "10ca24a97cefc14fca1b26f59e627f487b3b108b",
      "tree": "fcdcad2bf4fb8df3e780abd31a9a1b62d5bb1c1f",
      "parents": [
        "6ec0c6afafd9bad5e4c33578e9355997a280649c"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Mon Apr 23 15:38:27 2012 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Mon Apr 23 16:41:04 2012 -0700"
      },
      "message": "Promote layout debugging code from GridLayout to ViewGroup.\n\nLayout debugging code draws rectangles around:\n\n1. Layout insets (red)\n2. Bounds (blue)\n3. Margins (magenta)\n\nLayout debug mode is enabled with:\n\nadb shell setprop debug.layout true\n\nChange-Id: Ia155a2d0fbf33693a1e3c040f627ea3a534e1aff\n"
    },
    {
      "commit": "bbd51f1e360b22eece1d74bd65c7e6a0b59dee59",
      "tree": "3919c1cfffc46790c5435ab9a02bc7c3eb604572",
      "parents": [
        "f341e5545c8ac8ccec26ec549d57d2ddee069f55"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Wed Apr 18 15:09:05 2012 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Wed Apr 18 16:06:27 2012 -0700"
      },
      "message": "Share Insets instances between views that have the same background (Drawable)\n\nChange-Id: I47d93ccca6f553b678d25966d10d7a0a97cfa5ea\n"
    },
    {
      "commit": "1557fd7809078e421f751efc7d2539b3efdc54b2",
      "tree": "90f58eac3acab19fa61719219814acc7d6683dcd",
      "parents": [
        "c58a6d2da4790921743bdb4997ee59f8be1632e3"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Wed Apr 04 23:41:34 2012 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Fri Apr 13 16:25:08 2012 -0700"
      },
      "message": "Fix for bug 6110465.\n\nAdd layout bound metadata to 9-patch files and make layouts take them into account.\n\nThis CL contains a proposed API for dealing with layout bounds.\n\nThis solution exposes:\n\n1. Class: Insets - for storing layout Insets (and later possibly padding).\n2. Methods: View:(get/set)LayoutInsets() - for storing layoutBounds.\n3. Methods: ViewGroup:(get/set)LayoutMode() - for controlling layoutMode.\n\nIt also iuncudes the changes to GridLayout to support layout bounds.\n\nChange-Id: I60c836b6530b61c5abf37f93ee9c44aad73573f1\n"
    },
    {
      "commit": "e974f6384b1ab04c797c807286223c12cadfddcb",
      "tree": "10f568cb70d47490ed41f6bb528f2cb90c626392",
      "parents": [
        "b74931559b9e95b22ea632c243acda19fe8ea82c"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Thu Oct 06 16:11:35 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Thu Oct 06 16:11:35 2011 -0700"
      },
      "message": "Move Activity1 and Activity2 to API Demos area in development/samples.\n\nChange-Id: Ib6521caca69b0a0d96c66d9df754d2af17cb6908\n"
    },
    {
      "commit": "b559976a50c34848d602cc7138859507a379893c",
      "tree": "56da177ef94736006ca1141cb8e0f22394a85d35",
      "parents": [
        "b491877331cab95b8d2f9191a674476f826f92a5"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Fri Aug 05 11:04:36 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Fri Aug 05 11:24:55 2011 -0700"
      },
      "message": "Remove call to setPadding() in setUseDefaultMargins().\n\nIt is not possible for teh user to override the assigned padding values\nbecause the XML attributes are processed in the opposite order.\n\nAlso, make the XML and Java examples grid3.xml and Activity2.java\nconsistent in preparation for a move to API demos.\n\nChange-Id: I47334f9f5a46a8a528067d88350dd70eaa38ff33\n"
    },
    {
      "commit": "899d5922870c78e0e663bc5661849eb468afc984",
      "tree": "1c8a6ac2a71c4431fc3e3b55d2e94592a356050f",
      "parents": [
        "5c31583c53ca7308f4ee74c6edc7c7ff19809cce"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Thu Jul 21 11:39:37 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Tue Aug 02 16:01:28 2011 -0700"
      },
      "message": "Fix for http://b/issue?id\u003d5081478\n\nGridLayout needs to call measure on children after it knows how large children should be\n\nAlso:\n\n. Remove deprecated methods and XML attributes.\n. Stop Spaces having margins by default.\n. Remove getSpacers() and findUsed()\n. Change default for row/columnOrderPreserved() from false to true.\n. Improve automatic index allocation mechanism to use individual maxima.\n\nChange-Id: Id79fbb2e70a0bf2002191ec2a9746547d896de72\n"
    },
    {
      "commit": "5125e21bc0bbe5b9718d0f03b26cdafc67a7c726",
      "tree": "69107cc13318d24598a4e143d0359e8d4809c1ff",
      "parents": [
        "e432a0005180ba9ac2c1d7822c4761b475fddc51"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Thu Jul 21 11:39:37 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Mon Jul 25 12:12:10 2011 -0700"
      },
      "message": "Fix for http://b/issue?id\u003d5064532\n\n5064532: GridLayout with initial \"stretchy\" row and \"gone\" view in last row doesn\u0027t stretch properly\n\nAlso:\n\n. Infer stretchibility from whether or not gravity is defined.\n. Make algorithms for handling flexibility within cell groups consistent\n  with those acting between cells groups (via constraint system).\n. Hide and deprecate methods taking flexibility argument.\n. Hide and deprecate CAN_STRETCH constant.\n\nBoth deprecated features will be removed after references are removed from platform.\n\nChange-Id: Iabf2bf19f35cf30b8ec49c99b49a0550fd495125\n"
    },
    {
      "commit": "b0ce49b5ad53631ff0c3cdd8266e82f3c20c65dc",
      "tree": "315345a76c849454b5a2fe81d183e973611e9355",
      "parents": [
        "901e022c0c0923867e60c681f70412cfe6179e60"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Fri Jul 15 15:39:07 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Mon Jul 18 14:38:14 2011 -0700"
      },
      "message": "Derive GridLayout\u0027s \u0027gap\u0027 constants from new \"default_gap\" entry in dimens.xml.\n\nAlso:\n\n. removed static import of R.styleable - this is non-standard\n. removed final modifier from DEBUG flag,\n\tthis prevents the compiler from excluding the debugging code but\n\tallows debugging code to be enabled externally\n. added override to removeAllViews() as GridLayout needs to be notified whever hiearchy changes.\n\nChange-Id: I2409289bce7c6638eff320ffd48a6c0704e77fa8\n"
    },
    {
      "commit": "93cd6a6c78683643de51f9e698b38847bd1f1155",
      "tree": "5e2ba751e7b06f2e3aacf3cb327d9b4781225559",
      "parents": [
        "64bd196fe4adf2d39b1e1bfd643043878c1714c0"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Tue Jul 12 14:49:45 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Wed Jul 13 21:31:20 2011 -0700"
      },
      "message": "Rationalize API after adding maximum size feature.\n\n. Change name of Group to Spec\n\t(with the addition of the fglexibility field, this class no longer represents a group)\n\n. Replace overloaded Group/Spec constructors with factory method\n\n. Bugfix for measure() when alignmentMode \u003d\u003d ALIGN_BOUNDS\n\n. Bury as much Java API as possible, to minimize restrictions on future API enhancements\n\n\t- make all field access in Group package private\n\t- use factory methods in place of field assignment\n\nChange-Id: I46a5027a013bf7c3110b77108b8fd0427165cd18\n"
    },
    {
      "commit": "5d1a9840aaf57ae90716f0ac34abdcd09f7f4ed6",
      "tree": "4f55bb8da795bf4dc18377d69b2e61071211d9aa",
      "parents": [
        "b75a798471342da5e4624048c5516773dfecf4ca"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Thu Jul 07 11:47:08 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Thu Jul 07 14:23:00 2011 -0700"
      },
      "message": "Simplify and tidy the API for maximum value support.\n\nAlso:\n\n. Remove CAN_SHRINK, FIXED from public view. These can be added later.\n\nChange-Id: I63a64ac4748605da60373c8e3c2109178b5260c2\n"
    },
    {
      "commit": "48b55244d286b6d4e3699a5d9e938a9c87aaae75",
      "tree": "e17d0c267f99ada221ec2b3eaf4a507e4a911a8b",
      "parents": [
        "748d9f2fe4db14d1f0f140a92ff7e6cc27dcd732"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Wed Jun 29 11:09:45 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Fri Jul 01 11:08:19 2011 -0700"
      },
      "message": "Support for maximum values in layout GridLayout.\n\nA cell\u0027s ability to shrink or stretch is now integrated with the\nconstraints system, which is now supplied with both upper and lower\nbounds.\n\nAlso:\n\n. Remove package private access (pseudo) annotation\n. Remove rowWeight and columnWeight attributes and fields\n. Remove code to handle weights\n\nChange-Id: I9e2432101d15466c621f51ae362435051fab5764\n"
    },
    {
      "commit": "a1f7b10f7299b40ee3a4e5e309882ea1a931cd5e",
      "tree": "d65cd02933e7b17f75d19dd9483fa55abdc2dbfe",
      "parents": [
        "0ff6d7ee17de33d314ef726e7506b39c64a3ed35"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Thu Jun 23 11:10:13 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Thu Jun 23 11:41:57 2011 -0700"
      },
      "message": "Handle baseline aligned rows in which some components define baseline and some don\u0027t.\n\nAlso:\n\n. Make all of the methods in Alignment package private.\n. Inlucde Tor\u0027s test case\n\nChange-Id: If78a6a3b653723d9e12d6b162fd0c86b11a82dff\n"
    },
    {
      "commit": "1e54825135a7ccde421aa7fc400ab69e9348b5d6",
      "tree": "1674637bfc90d9fb227164d47f885f350cf5ed9f",
      "parents": [
        "4d4faf9e9119c186d96e0918fc9d6395188abd31"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Thu Jun 16 19:02:33 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Thu Jun 16 20:47:29 2011 -0700"
      },
      "message": "Change includeMarginsInAlignment flag to aligmentMode property.\n\nAlso:\n\n. Change getInteger() to getInt().\n. Conditionally compile, Paint() allocation and initialization.\n. Correct spelling mistake in javadoc.\n\nChange-Id: I00438a717e635a3917c5324f56063dce2e6041e8\n"
    },
    {
      "commit": "51f17d54613c33638c8a2da8affcd9ba35994cb3",
      "tree": "06e4240a72a2528dcfe3e21c8a2c4f19bbedcac6",
      "parents": [
        "60f36a52ac57018d33b284ee5b4f71ba869f54f0"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Mon Jun 13 10:44:49 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Mon Jun 13 10:44:49 2011 -0700"
      },
      "message": "Bugfix for GridLayout assuming that the x value of last column index is maximal. This is not the case when column indexes are defined incorrectly and GridLayout should still work in this case.\n\nChange-Id: I5deb3fb43ed1dd16dd20868854b96ebae4d30623\n"
    },
    {
      "commit": "f474870fe1189f73cf8ffbaba9e524ef194b5043",
      "tree": "eca5a08ddacc888a57576cd018a46ee5a967202d",
      "parents": [
        "f7728ae964f180081c8e1cb11c01d36e85dc8650"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Thu Jun 09 18:30:32 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Fri Jun 10 10:51:45 2011 -0700"
      },
      "message": "Optimise the way that indices are auto-allocated so that XML files can normally avoid using indices.\n\nChange-Id: Iafb25b17fec9391664c81a7e213eeaa918254912\n"
    },
    {
      "commit": "7fd948756947506db62a2bafca2ed45ff53ac0a0",
      "tree": "ab064fcbdf4daaa49da8b78ba865e4c674fa3ba1",
      "parents": [
        "061136c8d87f3c28837bac09d2c16d22b22762fb"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Tue Jun 07 20:14:17 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Thu Jun 09 09:54:01 2011 -0700"
      },
      "message": "Fix for baseline alignment in LinearLayout compatibiity mode.\n\nChange-Id: Iaa194537c1bc493172fab89624279fe5cbfa1f70\n"
    },
    {
      "commit": "aa616f31fe7c0c8e3657bb9a5889ec5e56ee5232",
      "tree": "7ed5a6e67f38bf2bd7264417a41508d5ca23dca9",
      "parents": [
        "b2450ce105086d1ac82d273a5292d9581c6ddec4"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Fri May 27 18:38:01 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Fri Jun 03 13:22:52 2011 -0700"
      },
      "message": "Response to code review for GridLayout:\n\n. Fixed spelling.\n. Added comments on internal methods.\n. Adopted the suggested internal name changes to improve clarity.\n. Added UNDEFINED constant to public API to avoid making reference to Integer.MAX_VALUE in docs.\n. Added final everywhere, then removed it.\n. Make the Interval class package private so that it can be put somewhere more general later.\n. Tidy code, removing maximize flag throughout.\n. Remove last of allocations taking place during layout.\n. Implement measureChild() etc.\n. Added LinearLayout alignment compatibility mode, and made it the default.\n\nChange-Id: I6a4ffa022d97d68138d1903d3830a20278815435\nhttps://android-git.corp.google.com/g/#change,109891\n"
    },
    {
      "commit": "3f8956d82bb40b15acee26017db0d13ddf43c80a",
      "tree": "a84c2975156c788b004126052d3d66f0ef1c2654",
      "parents": [
        "73a4b2b3be14255f87c4108d4e414b9137da6510"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Fri May 13 17:29:00 2011 +0100"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Thu May 26 09:28:26 2011 -0700"
      },
      "message": "Introduction of GridLayout.\n\nChange-Id: Ia2ec315e7d29dcc5aa13b080fc6ce00708e9c034\n"
    }
  ]
}
