)]}'
{
  "log": [
    {
      "commit": "683f3bed89d15c673b9fd391dc258c088e9316ae",
      "tree": "2722c54001768a5275120852bd39339412c54559",
      "parents": [
        "a41962065a93b63e7161cffd662b564e01a9e189"
      ],
      "author": {
        "name": "Wei-Ta Chen",
        "email": "weita@google.com",
        "time": "Thu Jun 04 11:42:14 2009 -0700"
      },
      "committer": {
        "name": "Wei-Ta Chen",
        "email": "weita@google.com",
        "time": "Thu Jun 04 11:42:14 2009 -0700"
      },
      "message": "Unhide inInputShareable in BitmapFactory.Options.\n\nThe variable works together with inPurgeable, which has been unhidden in\nhttps://android-git.corp.google.com/g/Gerrit#change,2870.\n"
    },
    {
      "commit": "eb949674fd3b83b706f795fc6b16ab1c66250c93",
      "tree": "4c58350eef523e46bcd26423a15aaa109779988f",
      "parents": [
        "30b70cec05190c8fcfa5aeb175a37bf81ed3966d"
      ],
      "author": {
        "name": "Wei-Ta Chen",
        "email": "weita@google.com",
        "time": "Mon Jun 01 15:49:32 2009 -0700"
      },
      "committer": {
        "name": "Wei-Ta Chen",
        "email": "weita@google.com",
        "time": "Tue Jun 02 11:01:43 2009 -0700"
      },
      "message": "Unhide inPurgeable in BitmapFactory.Options.\n\nThe correctness and effectiveness of the usage of the parameter are evaluated in:\nhttps://android-git.corp.google.com/g/Gerrit#change,2768\n"
    },
    {
      "commit": "60b88edea7132ddce90f2dced07c6706f1502270",
      "tree": "cac67b3b2503772e7add28719106ae57529185b0",
      "parents": [
        "c4cdc7d8a1a42f0ce6e28c39f70cfceeee29a781"
      ],
      "author": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Wed May 13 17:47:31 2009 -0700"
      },
      "committer": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Wed May 13 17:51:37 2009 -0700"
      },
      "message": "Fix typos.\n"
    },
    {
      "commit": "33a31b314f571ddcbef003e8a399c20ddeff6905",
      "tree": "8dbf80c96af1459c6ef48dabeb1cd26449f0cff5",
      "parents": [
        "6347c322b36cdf6a30a35e80d205d00d40368e61"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "nobody@android.com",
        "time": "Tue May 12 14:10:20 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 12 18:47:45 2009 -0700"
      },
      "message": "AI 148752: Fix description of breakText() param.\n  BUG\u003d1790234\n\nAutomated import of CL 148752\n"
    },
    {
      "commit": "807f23b2d8c7148cf6fc95bb88cfc2f78e4be66a",
      "tree": "a4ef7681cf3331f1f873bb8276f2aa867d841879",
      "parents": [
        "2bb3ea162a58c0f1dddccdbe68b64e02456f11f9",
        "b10f138e125b5656e810901d14c5f956ff5d9b64"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 15:45:25 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 15:45:25 2009 -0700"
      },
      "message": "Merge change 1057 into donut\n\n* changes:\n  * Add regoin scaling for transparent support\n"
    },
    {
      "commit": "b10f138e125b5656e810901d14c5f956ff5d9b64",
      "tree": "4ae9530582c5cff92909e0ff8dcd66e8637a94f6",
      "parents": [
        "7e3e04c144182c6807c66646b3f988beaba1720e"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Mon May 11 17:11:37 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Tue May 12 15:40:07 2009 -0700"
      },
      "message": "* Add regoin scaling for transparent support\n"
    },
    {
      "commit": "a87a132ebf1c2dd733cf52feff6e44525257c961",
      "tree": "683a3803f2b3704db73a56a769fcd0f19f912b52",
      "parents": [
        "da33d0d139531ff184a1a339b734de00f1cc0743"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Tue May 12 13:22:18 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Tue May 12 13:22:18 2009 -0700"
      },
      "message": "Fixes #1847219. Add a new API to load fonts from arbitrary files: Typeface.createFromFile(String/File).\n"
    },
    {
      "commit": "83b2107c4d2f07f46b6ae663115421749486f8b1",
      "tree": "f7a5d08afc5933d98f5f70adc744184452e5d240",
      "parents": [
        "08f3b5261fc31813e35cf04225ed8260f8a3bbe0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Tue May 12 10:54:51 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Tue May 12 10:54:51 2009 -0700"
      },
      "message": "Fixes #1846038. DrawableContainer was wrongly returning its opacity by ignoring the visibility of the currently selected layer. This change simply reports a TRANSPARENT opacity if there is no currently selected layer of if the selected layer is not visible. Otherwise it reports the opacity computed by the state class.\n"
    },
    {
      "commit": "13735a255dedd2c2e3b0cff66f0be2e17671f553",
      "tree": "9b55fcc3089076210763f62acf89563ed71a720b",
      "parents": [
        "d30605200b8b0f10e4740a9d7266d240023e69cd",
        "8169daed2f7a8731d478b884b1f455c747b88478"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "",
        "time": "Tue Apr 28 18:13:25 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Apr 28 18:13:25 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-donut\u0027 into donut\n"
    },
    {
      "commit": "8169daed2f7a8731d478b884b1f455c747b88478",
      "tree": "3ab1f44b128cef2f18f470af7483a8405329da23",
      "parents": [
        "8d112675879a2b83197d3b4ae4fb623abd1a1ec3"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "",
        "time": "Tue Apr 28 18:12:09 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Apr 28 18:12:09 2009 -0700"
      },
      "message": "AI 147976: Compatibility mode support. Part 2.\n  * Introduced ApplicationScale (may not be good name. CompatibilityScale? CanvasScale? Pls let me know if you have better idea)\n  * Changes to RootView / SurfaceView\n  - Makes the app believe it\u0027s running in the supported density/resolution.\n  - Makes the window manager believe it\u0027s running at the right density/resolution.\n  * Added methods to Rect/Event for scaling up/down.\n  Known issues:\n  * certain kind of images (such as nine patch for buttons) seesm to be loaded not by app, thus does not take the scale into account,\n  which, in turn, is causing layout issue.\n  * ZoomButton in MapView is rendered in wrong place\n  * Transparent region on Surface is not correct\n  * Specifying different densities in one process is not working.\n  BUG\u003d1770627\n\nAutomated import of CL 147976\n"
    },
    {
      "commit": "4924ae8d1f7610b8639e55b1088f6b4a993bfd40",
      "tree": "e25df4bca806560acea665226285fccb186e0ba2",
      "parents": [
        "e4de845ec2ad14538a437ca31f56948547b2d5c0",
        "23bd84ce6c448b73847eb404f3a1cc7b10afb6d6"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 28 13:45:44 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 28 13:45:44 2009 -0700"
      },
      "message": "Merge change 618 into donut\n\n* changes:\n  Fixes #1816088. Avoid initializing empty Rects when they are useless, especially in Zygote.\n"
    },
    {
      "commit": "23bd84ce6c448b73847eb404f3a1cc7b10afb6d6",
      "tree": "8d185d76ffb3d15c429728dd9ca8a371eae5144e",
      "parents": [
        "257eef353dfc9519b63e3fe2616505c5534b460a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 27 15:43:49 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 28 10:42:45 2009 -0700"
      },
      "message": "Fixes #1816088. Avoid initializing empty Rects when they are useless, especially in Zygote.\n"
    },
    {
      "commit": "caf0df1b7f99736aed1a0b923ef278fc4fd0fcca",
      "tree": "59d8cc6a5756bb0a637d16768b4a6f41c997bbe2",
      "parents": [
        "fc8db53eee11568b286e8d9c17e211bd6781fab6"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Mon Apr 27 14:32:05 2009 -0400"
      },
      "committer": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Mon Apr 27 14:32:05 2009 -0400"
      },
      "message": "Add call to (new) Canvas.freeCaches() in response to low-memory\n\nThis is in conjunction with removing a similar call made by the browser.\nNow it will be centralized, and the browser\u0027s call site will be removed.\n"
    },
    {
      "commit": "1fb758e94b5b9e342b6dc6452cb5bd7cf0cc4ed6",
      "tree": "f09abf0ff05ea93100ed41541371dd18e651493d",
      "parents": [
        "01be1fa7930e92aac6ba4dd4e8cb75f8719e8b37",
        "c70e06bbfac0d92ec218a32e35d9d7fa80f23cc9"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 27 05:31:19 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 27 05:31:19 2009 -0700"
      },
      "message": "Merge change 546 into donut\n\n* changes:\n  Add (hidden for now) purgeable bitmaps\n"
    },
    {
      "commit": "c70e06bbfac0d92ec218a32e35d9d7fa80f23cc9",
      "tree": "3a758b6a05e7b60dec8c16c42d246e1e991a3854",
      "parents": [
        "44ff0514c2c8b8917ef81182c8f9d84a1617ec57"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Fri Apr 24 11:09:12 2009 -0400"
      },
      "committer": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Fri Apr 24 17:20:29 2009 -0400"
      },
      "message": "Add (hidden for now) purgeable bitmaps\n\nBitmapFactory::Options now let you specify if the resulting bitmap can be\n\"purgeable\". If so, then its decoded pixels may be purged when not actively\nbeing drawn, freeing up that RAM. When such a bitmap is drawn, it will\nautomatically be re-decoded on demand. This is done by having the bitmap\nkeep a reference/copy of the encoded data.\n\nWhere it is a reference or a copy is controlled by the \"shareable\" flag in\nOptions. If this is true, the implementation *may* just reference the encode\ndata (e.g. a file descriptor) rathern than making a complete copy of it.\n\nCurrently, purgeable is not supported for generic inputstreams, but is\nenabled for byte-array, file-descriptor, and assets, though for impl\nreasons only file-descripts are currently enabled for \"shareable\", but that\nmay change in the future.\n"
    },
    {
      "commit": "1d442e0d990b581357f33f5463c7c5cb49b551e8",
      "tree": "58963b9ba095e179ba7c63e52dfd525b93cb978e",
      "parents": [
        "a0c9e8526b094e3b4f2c2747622059215d00516f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 20 18:14:05 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 22 18:03:21 2009 -0700"
      },
      "message": "More optimization of dumpsys output.\n\nThere are three major classes of changes here:\n\n- Avoid writing lines where their values are often empty, false, or some other typical thing.\n- Use partial writes to the PrintWriter to avoid creating temporary strings.\n- Use StringBuilder where we need to generate real String objects (and where possible cache the result).\n"
    },
    {
      "commit": "c39a6e0c51e182338deb8b63d07933b585134929",
      "tree": "e55fc5bd38b1eb8fb4851a0fe1cc264a7fe2f245",
      "parents": [
        "b2a3dd88a53cc8c6d19f6dc8ec4f3d6c4abd9b54"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 11 12:11:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 11 12:11:56 2009 -0700"
      },
      "message": "auto import from //branches/cupcake/...@137873\n"
    },
    {
      "commit": "4df2423a947bcd3f024cc3d3a1a315a8dc428598",
      "tree": "e7dac2c5a367b169e7f05a36058cf470e93f003b",
      "parents": [
        "c474dec3ffa1c0fe37edb3e701684188f7e8e7bc"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 05 14:34:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 05 14:34:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@136594\n"
    },
    {
      "commit": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "076357b8567458d4b6dfdcf839ef751634cd2bfb",
      "tree": "efbb2fd6f1dc67d2d606382fc3b82983e7cb2e1f",
      "parents": [
        "3dec7d563a2f3e1eb967ce2054a00b6620e3558c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 14:04:24 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 14:04:24 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@132589\n"
    },
    {
      "commit": "3dec7d563a2f3e1eb967ce2054a00b6620e3558c",
      "tree": "aa3b0365c47cb3c1607c0dc76c8d32b4046fc287",
      "parents": [
        "15ab3eae2ec3d73b3e8aa60b33ae41445bf83f4b"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 02 22:54:33 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 02 22:54:33 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@137055\n"
    },
    {
      "commit": "da996f390e17e16f2dfa60e972e7ebc4f868f37e",
      "tree": "00a0f15270d4c7b619fd34d8383257e1761082f4",
      "parents": [
        "d24b8183b93e781080b2c16c487e60d51c12da31"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:50 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:50 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@131421\n"
    },
    {
      "commit": "d24b8183b93e781080b2c16c487e60d51c12da31",
      "tree": "fbb89154858984eb8e41556da7e9433040d55cd4",
      "parents": [
        "f1e484acb594a726fb57ad0ae4cfe902c7f35858"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@130745\n"
    },
    {
      "commit": "f1e484acb594a726fb57ad0ae4cfe902c7f35858",
      "tree": "99d2b34512f0dc2ae67666e756c1cfcd331e5fe3",
      "parents": [
        "22f7dfd23490a3de2f21ff96949ba47003aac8f8"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 22 00:13:42 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 22 00:13:42 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@127436\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"
    }
  ]
}
