)]}'
{
  "log": [
    {
      "commit": "21c241e061de29a538008ca42df9c878184bcfb8",
      "tree": "2ab9065ae16bbe9fc5b599e1c591a020ac5c7ce1",
      "parents": [
        "c8462e322bcf5a07d9ef677ed099e007ef268932"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 08 13:57:23 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 08 14:34:03 2012 -0800"
      },
      "message": "Add new Intent API for associating a ClipData with an Intent.\n\nAllows applications to propagate multiple URI grants through an\nIntent.\n\nLater on, we should probably redefine the share actions to be\nbased on this ClipData with the old extras-based approach only\nthere for compatibility.  Even if we don\u0027t do that, though, this\nallows you to do a multi-select share that grants multiple URI\npermissions by stuffing the URIs in a ClipData.\n\nAlso add some documentation in various places telling people how\nthey can grant URI permissions.\n\nChange-Id: Id4ba8e72c11caf7e1f1f438cb7af058d1586a37c\n"
    },
    {
      "commit": "0c245fb201aa28776586dc1ce4fc4fc281f894a7",
      "tree": "d3d951edc605615f0a383b7bfc9eed702682b763",
      "parents": [
        "731f018928ea122e5367eb23bc6c94cde0e53b2d",
        "d159109bd88e290ffacce30aaff42b0a0c790709"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Mar 08 11:13:27 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 11:13:27 2012 -0800"
      },
      "message": "Merge \"Make more TextView RTL APIs public\""
    },
    {
      "commit": "d159109bd88e290ffacce30aaff42b0a0c790709",
      "tree": "98e336b967c837aefb0b807e538917ed9c7b0472",
      "parents": [
        "7d3c690e723e3fb82775baad5942234cd30f8d2d"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Mar 07 15:34:38 2012 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Mar 07 15:34:38 2012 -0800"
      },
      "message": "Make more TextView RTL APIs public\n\n- padding related APIs\n- drawable related APIs\n\nChange-Id: If926ba1658431f826153128553f1ff429275f948\n"
    },
    {
      "commit": "d5f07990822db3531c84755f406c1e12083aee37",
      "tree": "9e36c628a9f7b76d367158164475ca055632e5a4",
      "parents": [
        "7072dce01115dd310dcd381002cb21b652571e6b",
        "e69095869c1b324aa20991ed1805c492c3f731e8"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Mar 07 13:54:43 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 07 13:54:43 2012 -0800"
      },
      "message": "Merge \"NEW_API: Rework CameraSound into MediaActionSound, and unhide it.\""
    },
    {
      "commit": "5eb37241fee7e656cf9787bf00a160e94b4894fc",
      "tree": "4f6291fcc4462247152ee9927a1ebb90a331266c",
      "parents": [
        "afeecb0740938d295083335950ea901d832a794c",
        "27ff913d56de8400083a13fc572e2812b32c890c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 06 19:06:25 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 19:06:25 2012 -0800"
      },
      "message": "Merge \"Work on more low memory reporting to apps.\""
    },
    {
      "commit": "27ff913d56de8400083a13fc572e2812b32c890c",
      "tree": "f30ec6efb44658b448c5e049bf0c1c3e40f0f06c",
      "parents": [
        "4f03d35f9c040222e6a46dde807fe2ff7852beb8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 06 14:57:58 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 06 18:46:32 2012 -0800"
      },
      "message": "Work on more low memory reporting to apps.\n\nThere are now some new trim memory levels that are sent to\nnon-background applications as RAM becomes low.\n\nThere is a new API for an application to retrieve information\nabout memory trimming and such on demand.\n\nFixed various checks against the memory trim level to be\nrobust (not compare against exact values).\n\nChange-Id: Ifd1c6151124350168aef20a94e517166fd2e03eb\n"
    },
    {
      "commit": "03bd302aebbb77f4f95789a269c8a5463ac5a840",
      "tree": "abd49f5d5e379f75c9cab050b7426e492884e542",
      "parents": [
        "b4827c089fc0aec49a73cc32cd18d2ce4d627c5a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 06 13:48:56 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 06 16:42:56 2012 -0800"
      },
      "message": "Don\u0027t close the database until all references released.\n\nSQLiteDatabase.close() should call releaseReference() rather than\nclosing the database immediately.  SQLiteDatabase should also hold\na reference to itself while performing certain operations to\nensure that they complete normally even if another thread closes\nthe database at the same time.\n\nFixed a couple of missing or redundant uses of acquireReference()\nrelated to CursorWindows.\n\nTo be honest, the reference counting performed by SQLiteClosable should\nnot be needed, but we\u0027re stuck with it in the API.\n\nBug: 6104842\nChange-Id: I3444a697409905d4a36b56418dc7766f5ba76b59\n"
    },
    {
      "commit": "e69095869c1b324aa20991ed1805c492c3f731e8",
      "tree": "0a1a11391b8ac593b66fbf37e8f57b6b1a00ab7b",
      "parents": [
        "fd400f5f483d76a38a28155a7328a953ed3ec36f"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Mar 01 11:01:38 2012 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Mar 06 16:33:50 2012 -0800"
      },
      "message": "NEW_API: Rework CameraSound into MediaActionSound, and unhide it.\n\nMediaActionSound is a helper class for applications that use the\ncamera, or include camera-like behavior such as taking\nscreenshots. This class helps applications match the sound-playing\nbehavior of the Camera.takePicture, MediaRecorder.start, and\nMediaRecorder.stop methods.\n\nThis is useful for applications that don\u0027t use the above methods, but\nstill logically capture images or video, such as the panorama capture\nfeature and the video effects in the platform camera application.\n\nBug: 5029099\nChange-Id: I829f6e2941f167f91f9cb506215b7232cb054958\n"
    },
    {
      "commit": "faeac2737de098269a69011f4980a412559b55a9",
      "tree": "929a9132a4e508b3463421be3486bb5202b53c0f",
      "parents": [
        "f89ed895235958758db7bed24495c3f6a32dcfe0",
        "6cb7b46c56449e84434b11eb12f9b8977fcd0398"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 05 15:38:47 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 05 15:38:47 2012 -0800"
      },
      "message": "Merge \"Change widgets to post invalidate to the animation timer.\""
    },
    {
      "commit": "6cb7b46c56449e84434b11eb12f9b8977fcd0398",
      "tree": "a4a418cc979ca408702211b6083e50c937d578a2",
      "parents": [
        "baefdfad6e77e772deb6474380dd85ac776293e8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 05 13:21:17 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 05 15:19:31 2012 -0800"
      },
      "message": "Change widgets to post invalidate to the animation timer.\n\nChange-Id: I8377e924529fb9d8afd8a834003a17de616e8e87\n"
    },
    {
      "commit": "7bcbeb789d8886ade27e859cd0615f30cc2c4898",
      "tree": "b8b919b0f4979cb32f2621aa463125164ed7e642",
      "parents": [
        "ef6f68b8c825e4dd150926da61401a103d88f0e9",
        "baefdfad6e77e772deb6474380dd85ac776293e8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 05 13:38:59 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 05 13:38:59 2012 -0800"
      },
      "message": "Merge \"Make SQLiteDatabase final.\""
    },
    {
      "commit": "baefdfad6e77e772deb6474380dd85ac776293e8",
      "tree": "d5c7370bd48fea6c5e344f977585c3dc88e3d74d",
      "parents": [
        "08cbdad565b3d2a01b005ceea5667f261ba89353"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 05 10:33:13 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 05 13:24:02 2012 -0800"
      },
      "message": "Make SQLiteDatabase final.\n\nThe SQLiteDatabase constructor is inaccessible so it is not\npossible for applications to subclass it.  To remove all possible\nremaining temptation to do so, make the class final.\n\nChange-Id: I4148e9b06f0661ec22aab8e45afde38498d2375a\n"
    },
    {
      "commit": "09c8f48c105c4ed299617aaa892c7f0cd891b144",
      "tree": "5c8dbcb182a5689aaa8fa43d7b7f4af823ea1e42",
      "parents": [
        "681abe6e60e1397c5b80558f5ad2144d0cd12dd6",
        "d7026f1612a7c1e8cc9b484038fa99b7fc29cfd7"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 05 10:49:11 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 05 10:49:11 2012 -0800"
      },
      "message": "Merge \"Report leaked Context registrations to StrictMode.\""
    },
    {
      "commit": "eb00769e8983a02397db26a5413147a975b47c1f",
      "tree": "92f5dd6a4c9929e8d2fb0f67c0479f8b4cbc7f84",
      "parents": [
        "1359adbc1d2c2f1a1ff84cb82b40b6d1556df23a",
        "e861b423790e5bf2d5a55b096065c6ad0541d5bb"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 02 18:07:35 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 18:07:35 2012 -0800"
      },
      "message": "Merge \"Allow disk I/O while performing dump().\""
    },
    {
      "commit": "3ee7ce2be31431a940c635f5c2ca52ebbddb94ed",
      "tree": "8a544b32d5102515002036d2c6ac8576ef7836e6",
      "parents": [
        "b3ef538fe645a7888c873eaa633fa8c50de6193d",
        "4b3cdbb2cfac6a39296d1af5a48c9b07159ae09b"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Mar 02 14:57:42 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 14:57:42 2012 -0800"
      },
      "message": "Merge \"Fixing the build for real.\""
    },
    {
      "commit": "4b3cdbb2cfac6a39296d1af5a48c9b07159ae09b",
      "tree": "b440bfc888473304fa3f3c3362b3bb0d676f2fbf",
      "parents": [
        "56232eb14a018ecf9036c20be277d5e200e9df46"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Mar 02 14:56:27 2012 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Mar 02 14:56:27 2012 -0800"
      },
      "message": "Fixing the build for real.\n\nChange-Id: I6400e599cdf0d2e94d3ac024b9b32de55b1e3760\n"
    },
    {
      "commit": "45e96fd28a6f0b6a6526c9af62b083be73385c95",
      "tree": "b93db30fbc2b0e86227c46500178644ff83a28a6",
      "parents": [
        "49537043da94176f1bb2b0153ed672c6c894d98d",
        "ff37505cb13f96ddec09594517ad6f4fa2fd1def"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Mar 02 13:12:22 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 13:12:22 2012 -0800"
      },
      "message": "Merge \"Adding getter/setter for all public attributes in CalendarView.\""
    },
    {
      "commit": "e861b423790e5bf2d5a55b096065c6ad0541d5bb",
      "tree": "0787b3cac04d166884e8f24ef6743fd9e735e8c8",
      "parents": [
        "c81ec3637b8e3c177ec041aeb3863e123924505b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 01 20:59:22 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 02 12:31:27 2012 -0800"
      },
      "message": "Allow disk I/O while performing dump().\n\nAdd Closeable to ParcelFileDescriptor, and always close any incoming\nPFDs when dumping.\n\nBug: 6106309\nChange-Id: I25b465692d5e1da0a5980a307cb48a058bc2bca7\n"
    },
    {
      "commit": "e6e47f0517b98055625abc21a85eaa702374495a",
      "tree": "7b2d5c381285db0f07177c4899d1755cb3a70ccd",
      "parents": [
        "8dc3cc2e13b500e368f5ba1aacfaf0eddbce668c",
        "dc927307ec69dcda57a05b51bcab78cb994f350b"
      ],
      "author": {
        "name": "Alon Albert",
        "email": "aalbert@google.com",
        "time": "Fri Mar 02 11:25:54 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 11:25:54 2012 -0800"
      },
      "message": "Merge \"Add a displayColor column to view_events\""
    },
    {
      "commit": "d2cca91e92d9988898a7579e418c00b65d429d46",
      "tree": "5be2aec0058d11b2701ab6e205d403dc72c0f7af",
      "parents": [
        "db3c6b8c0d3cde8323f962bb285d7735f698a363",
        "79087e4b967d8af26c488c41b8c1a087a12da84d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Mar 02 11:15:41 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 11:15:41 2012 -0800"
      },
      "message": "Merge \"Add an API for deleting databases.\""
    },
    {
      "commit": "1a7dd039f189036709bc2253ba50955913f59d7a",
      "tree": "40a528c88e21f92ac0637f2a6d758f34fe8acf1c",
      "parents": [
        "c13accb265f498a3e4fa7bd258628bc605ee534c"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Mar 01 10:50:09 2012 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Mar 02 10:44:36 2012 -0800"
      },
      "message": "Unhide transient state APIs on View\n\nChange-Id: I0f14728c94cd3461431352e6f01311934aec9858\n"
    },
    {
      "commit": "dc927307ec69dcda57a05b51bcab78cb994f350b",
      "tree": "0203d886aa89b5adf12aa11101aa982bad002d17",
      "parents": [
        "3c90952036a5ff7ddb2946c643f1a0bf1c31d53a"
      ],
      "author": {
        "name": "Alon Albert",
        "email": "aalbert@google.com",
        "time": "Thu Mar 01 16:05:55 2012 -0800"
      },
      "committer": {
        "name": "Alon Albert",
        "email": "aalbert@google.com",
        "time": "Fri Mar 02 09:43:17 2012 -0800"
      },
      "message": "Add a displayColor column to view_events\n\nChange-Id: I0f73685ec75e56929553b01d6ede0ad11fba55f4\n"
    },
    {
      "commit": "ff37505cb13f96ddec09594517ad6f4fa2fd1def",
      "tree": "a89c2fcf878c15e900c97e5fc9947b75e761a4b7",
      "parents": [
        "d0f4e09cba152a2c6cdb14e6a5ff36e864cb5adf"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 01 15:57:22 2012 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 01 21:31:34 2012 -0800"
      },
      "message": "Adding getter/setter for all public attributes in CalendarView.\n\nbug:6094713\n\nChange-Id: Iff4a1d903d597ae8a3d74a4e4734376acca417f3\n"
    },
    {
      "commit": "d7026f1612a7c1e8cc9b484038fa99b7fc29cfd7",
      "tree": "2ba3ba651643d5b3fb1a1dec88445d26538fead3",
      "parents": [
        "c81ec3637b8e3c177ec041aeb3863e123924505b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 01 20:50:32 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 01 21:10:05 2012 -0800"
      },
      "message": "Report leaked Context registrations to StrictMode.\n\nWhen tearing down any leaked BroadcastReceiver or ServiceConnection\nContext registrations, report through StrictMode.\n\nBug: 6084353\nChange-Id: I5e78039299e2c9c1440cd1fd09317da78ffee82a\n"
    },
    {
      "commit": "79087e4b967d8af26c488c41b8c1a087a12da84d",
      "tree": "5372d32650c0da205f6c3583de0ec3c83fdeb037",
      "parents": [
        "b7f2736e789bb6f3a09970bf924c56b5bc44b69a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 01 19:52:44 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 01 19:56:53 2012 -0800"
      },
      "message": "Add an API for deleting databases.\n\nAdd SQLiteDatabase.deleteDatabase to delete a database and all\nof its auxiliary files.\n\nThis method is also used by Context.deleteDatabase and resolves issues\nwhere auxiliary files would get left behind.\n\nBug: 5972489\nChange-Id: I3633b9b4978972a1d240ac0a9861420ecf989149\n"
    },
    {
      "commit": "dd3ef2c573396271c7c3b71e30fbd10cf66d3bc0",
      "tree": "00b2a85f32de432e7fc52472d6f6d5275781e664",
      "parents": [
        "f64a6d53468fd7aabe19d4c74ce205c55f19e870"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Mar 01 16:37:17 2012 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Mar 01 17:34:56 2012 -0800"
      },
      "message": "Improve RTL APIs\n\n- follow changed / reset pattern\n\nChange-Id: I1c5e9b39196029bd78add2ab13b984da124822ca\n"
    },
    {
      "commit": "ac5a3a1c123ba58ed75ed7ddaf3f82eec37606c7",
      "tree": "644fa25cbf81621cb1b20dd35f5a22f3ca63d3a6",
      "parents": [
        "fc46475f7f017032715973bcb55cb171880e4602",
        "98aec1c7efa639ac902d1200a3ac5a4a7a140129"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Mar 01 16:23:29 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 16:23:29 2012 -0800"
      },
      "message": "Merge \"Make layoutDirection API public\""
    },
    {
      "commit": "98aec1c7efa639ac902d1200a3ac5a4a7a140129",
      "tree": "689046f0d7e15661aef04d27d99661ba0a44df98",
      "parents": [
        "62f24df57a6240135cfd27c86430e1dda6c81916"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Mon Feb 13 16:54:05 2012 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Mar 01 16:21:55 2012 -0800"
      },
      "message": "Make layoutDirection API public\n\nChange-Id: Ie125513e4ea72b33b42355dbc43f9b9b6d46d7eb\n"
    },
    {
      "commit": "7edb9a94908f41b9dc3aa13d2089efa304f12c22",
      "tree": "d1fbba11323401994e4476f912ae37ec5a1ae245",
      "parents": [
        "b08dee9d38fb73715f17183dbc57b7130796b935",
        "f73222a39e0fa294d9105fd7464943aed6e77cd7"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Mar 01 15:35:39 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 01 15:35:39 2012 -0800"
      },
      "message": "am f73222a3: am 964955e0: am 8a9b14d8: am 5aeb8587: Merge \"DRM framwork bug fix: add an API to release resources\"\n\n* commit \u0027f73222a39e0fa294d9105fd7464943aed6e77cd7\u0027:\n  DRM framwork bug fix: add an API to release resources\n"
    },
    {
      "commit": "43d8a95fa8dfd26ba8c56ac7489a8bc77c77034c",
      "tree": "8aed3c6b7190073512833b461e4e28aa2a9fe657",
      "parents": [
        "7084e75282d6c800a1b889eff66794a8cd62e0c5",
        "07573b32494acbabd21979d8b9584c1ed3f7a6ad"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Feb 29 19:33:06 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 29 19:33:06 2012 -0800"
      },
      "message": "Merge \"Improve Wi-Fi hand-off\""
    },
    {
      "commit": "07573b32494acbabd21979d8b9584c1ed3f7a6ad",
      "tree": "ad3a4a15c889b4b175717cd38a28a92601ed82ae",
      "parents": [
        "6b48f088b1e0bed242118422c88fea8d714307e0"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Jan 27 21:00:19 2012 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Feb 29 17:33:36 2012 -0800"
      },
      "message": "Improve Wi-Fi hand-off\n\nWhen Wi-fi connects at L2 layer, the beacons reach and the device\ncan maintain a connection to the access point, but the application\nconnectivity can be flaky (due to bigger packet size exchange).\n\nWe now use Watchdog to monitor the quality of the last hop on\nWi-Fi using signal strength and ARP connectivity as indicators\nto decide if the link is good enough to switch to Wi-Fi as the uplink.\n\nARP pings are useful for link validation but can still get through\nwhen the application traffic fails to go through and thus not best indicator\nreal packet loss since they are tiny packets (28 bytes) and have\nmuch low chance of packet corruption than the regular data\npackets.\n\nSignal strength and ARP used together ends up working well in tests.\nThe goal is to switch to Wi-Fi after validating ARP transfer\nand RSSI and then switching out of Wi-Fi when we hit a low\nsignal strength threshold and waiting until the signal strength\nimproves and validating ARP transfer.\n\nChange-Id: Ica593291ec7772da892f03cf45b649635b730c47\n"
    },
    {
      "commit": "8a9b14d80530eccf801fa794bacf287813b5978f",
      "tree": "ce2ad7eb730de761e7d45c9f699b4f56d9d5bac0",
      "parents": [
        "a66be970999c5eec1c8efb46e196f19ae563fc9b",
        "5aeb85877a95cc12c0784757a9842983b04e8600"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 29 15:44:41 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 29 15:44:41 2012 -0800"
      },
      "message": "am 5aeb8587: Merge \"DRM framwork bug fix: add an API to release resources\"\n\n* commit \u00275aeb85877a95cc12c0784757a9842983b04e8600\u0027:\n  DRM framwork bug fix: add an API to release resources\n"
    },
    {
      "commit": "8662cab5c6a01ea5c426512e6f6d2cf3e158aea0",
      "tree": "3b59cda27e624d46603427888e906e3686c00379",
      "parents": [
        "c021a119a2b2b274e3a0bc06003e389a00de9112"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 23 14:59:36 2012 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 29 14:05:24 2012 -0800"
      },
      "message": "Merge: Introduce UpdateLocks\n\nAn \"UpdateLock\" works similarly to a wake lock in API: the caller is\nproviding a hint to the OS that now is not a good time to interrupt\nthe user/device in order to do intrusive work like applying OTAs.\nThis is particularly important for headless or kiosk-like products\nwhere ordinarily the update process will be automatically scheduled\nand proceed without user or administrator intervention.\n\nUpdateLocks require that the caller hold the new signatureOrSystem\npermission android.permission.UPDATE_LOCK.  acquire() and release()\nwill throw security exceptions if this is not the case.\n\nThe \"is now convenient?\" state is expressed to interested parties\nby way of a sticky broadcast sent only to registered listeners.  The\nbroadcast is protected; only the system can send it, so listeners\ncan trust it to be accurate.  The broadcast intent also includes a\ntimestamp (System.currentTimeMillis()) to help inform listeners that\nwish to implement scheduling policies based on when the device became\nidle.\n\nThe API change here is a tiny one: a dump(PrintWriter) method has been\nadded to the TokenWatcher class to facilitate getting information out\nof it for dumpsys purposes.  UpdateLock itself is still @hide.\n\nBug 5543442\n\nChange-Id: I3709c831fc1883d7cb753cd2d3ee8e10a61e7e48\n"
    },
    {
      "commit": "6225df010365d00b1d0f3b1ca13f18cea537c8e3",
      "tree": "f8ec6b625745c57b4a0dbe6aab02072cf10be8d4",
      "parents": [
        "d7fa7deef9bc0cf22bf450fdb062327697c087c4"
      ],
      "author": {
        "name": "Kei Takahashi",
        "email": "KeiA.Takahashi@jp.sony.com",
        "time": "Tue Jan 31 13:18:45 2012 +0900"
      },
      "committer": {
        "name": "Kei Takahashi",
        "email": "KeiA.Takahashi@jp.sony.com",
        "time": "Wed Feb 29 12:59:53 2012 +0900"
      },
      "message": "DRM framwork bug fix: add an API to release resources\n\nWhen DrmManagerClient object is created and released many times,\nthe process suddenly crashes.\nThe case can happen when we make many thumbnails of\nDRM-encrypted contents.\n\nThe problem is caused by shortage of file descriptors.\nDrmManagerClient releases references of file descriptors\nonly when GC runs. So file descriptors are kept long time\neven after the reference of DrmManagerClient are released.\n\nBy introducing DrmManagerClient#release() API,\nthe problem is solved. An application call this API\nwhen we no longer need to use DrmManagerClient object.\n\nChanges are made by SEMC and Sony.\n\nChange-Id: Ie0bbc29cc33872449824285a8d67b1c3cdd8082b\n"
    },
    {
      "commit": "8279570b222d46def4e541d71ef29dbfd9fbe3d7",
      "tree": "0c64808a15062ea0942f20fdd6e4c4e06e71596b",
      "parents": [
        "c1a1a4954071af55c772bd6b0b0de52edd9bf1e9"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Tue Feb 28 16:36:45 2012 -0800"
      },
      "committer": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Tue Feb 28 16:36:45 2012 -0800"
      },
      "message": "Fix for broken build part 2. Update 16.txt too\n\nChange-Id: I8609dd818a6e4059f9b149a8089d681ac2972d66\n"
    },
    {
      "commit": "c1a1a4954071af55c772bd6b0b0de52edd9bf1e9",
      "tree": "549842c7214172485023774f9ba2827c06e42a52",
      "parents": [
        "c02859f6eb7ea5c3ea1719b68535f6b8ea2a4b0c"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Tue Feb 28 16:31:38 2012 -0800"
      },
      "committer": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Tue Feb 28 16:31:38 2012 -0800"
      },
      "message": "Fix for broken build. update-api step missing.\n\nChange-Id: Ia8d3c92825cfdca8b8eef1c1badd1b514ceef18e\n"
    },
    {
      "commit": "e512ad5089eef76d080fc6fdd17dfb88ad8b72e9",
      "tree": "a5ab41eb26de07c303f77a31fcb221c98884b059",
      "parents": [
        "6fa13b5a02464281df56919009fa3af5a3f9026b",
        "060526f9856e52964eaf13df8db74f5fbdcb83b1"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 14:33:19 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 14:33:19 2012 -0800"
      },
      "message": "Merge \"Deprecate default constructor for classes that should have been meant to be interfaces\""
    },
    {
      "commit": "8fe9260bbba4a2987164323d93537a61c65d5ac2",
      "tree": "6c42860d90e4c47912e9ba7556ee22a6caf1f069",
      "parents": [
        "af2abf5adae93b263381ea70d3a0c1a6f03f795f",
        "c4a9976aa15929a73ab7c0979d8b2e1e9eeadcc7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 11:23:26 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 11:23:26 2012 -0800"
      },
      "message": "Merge \"Deprecated a mis-spelled method and replaced it with a new method\""
    },
    {
      "commit": "c4a9976aa15929a73ab7c0979d8b2e1e9eeadcc7",
      "tree": "7b080af1f029f3d515f0a398baaf80849d4b2755",
      "parents": [
        "fd400f5f483d76a38a28155a7328a953ed3ec36f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 18:13:37 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 18:25:31 2012 -0800"
      },
      "message": "Deprecated a mis-spelled method and replaced it with a new method\n\nChange-Id: Id049a4effab120c3f837cde60a87efcd89a64ec6\n"
    },
    {
      "commit": "060526f9856e52964eaf13df8db74f5fbdcb83b1",
      "tree": "830d8f468d530b01ac950b83484eb789959f0f67",
      "parents": [
        "fd400f5f483d76a38a28155a7328a953ed3ec36f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 16:41:22 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 18:00:12 2012 -0800"
      },
      "message": "Deprecate default constructor for classes that should have been meant to be interfaces\n\no We should have not exposed these default constructors in the first place.\n\nChange-Id: Ia8bcfe77e9730021ad8870ece67c6d0eed8146ad\n"
    },
    {
      "commit": "5312d0805cda5f4e6c66b6c3fa84c7cb9fc72191",
      "tree": "4964d032a6b9171c840c9b42eaa18bd567caed61",
      "parents": [
        "41c31ef3fa1acf18f5fce3fcf1b2f5c6fd344fd6",
        "bd2516165e4d38f1ee7f7f0ceb038ebf7ea1b84a"
      ],
      "author": {
        "name": "Alon Albert",
        "email": "aalbert@google.com",
        "time": "Mon Feb 27 16:29:55 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 27 16:29:55 2012 -0800"
      },
      "message": "Merge \"Add new Reminder Method: Alarm\""
    },
    {
      "commit": "5265466e8a5453e738713869f61ca45482b85319",
      "tree": "f5e5b79613f7e223895cb9b66e6aa2794d1b8469",
      "parents": [
        "2abb1381524bdbbc7a09b573505abde4178be2e3",
        "e639da7baa23121e35aa06d6e182558e0e755696"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 24 18:40:37 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 24 18:40:37 2012 -0800"
      },
      "message": "Merge \"New development permissions.\""
    },
    {
      "commit": "b98a81f86ab87f1d718f329f03256111fdabd8d1",
      "tree": "0a21f893651cdcf5ebcb60839c62919b8a9cf3c1",
      "parents": [
        "8657477721f3ab2271130c50b7a66b8593496797"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Feb 24 11:09:07 2012 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Feb 24 16:59:03 2012 -0800"
      },
      "message": "Add support for optional titles in action modes\n\nOptional titles will only be displayed in the CAB if they entirely fit\ninstead of ellipsizing.\n\nFixes bug 5821883\n\nChange-Id: I0cfd6d4fd34a4fa9f520499d577706da30606811\n"
    },
    {
      "commit": "7b49b4bea8090bb8e5015225eb05686d3676205c",
      "tree": "7cfe655be70ea8adc3f9aed9d567cd6da768ae6c",
      "parents": [
        "6513daef5e34082d9670c4149252703d40f8d937",
        "e9d4c71f47f74ee9a4a490f62769ad010a17d19b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 15:09:54 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 24 15:09:54 2012 -0800"
      },
      "message": "Merge \"deprecate L_8, LA_88 and RGB_332 in sdk\""
    },
    {
      "commit": "e9d4c71f47f74ee9a4a490f62769ad010a17d19b",
      "tree": "8227f4727eb45324bf96bb18e4290f206f19108f",
      "parents": [
        "2d77b5332ac4ef5b252fbd8f56a195e0fce03292"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 14:58:36 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 14:58:36 2012 -0800"
      },
      "message": "deprecate L_8, LA_88 and RGB_332 in sdk\n\nre-add support for pixelformats L_8, LA_88 and RGB_332 in libui\nfor backward compatibility.\n\nThis may or may not fix 6058926\n\nBug: 6049685\nChange-Id: Ic1b8b4cc994522f7fe664da64c0ef76b98bc6d53\n"
    },
    {
      "commit": "3f0c58eb708ca520e84396fe764147800395812f",
      "tree": "550651c9789b6950c1e3cc8e1c90fe084ba3ca71",
      "parents": [
        "525ece4098a636818148dd5a660ebe4d7a2138af",
        "2561b0b10a55841a08e0e1d467e73e10b1bf256d"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Feb 24 10:53:42 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 24 10:53:42 2012 -0800"
      },
      "message": "Merge \"New notification priority and related APIs.\""
    },
    {
      "commit": "2561b0b10a55841a08e0e1d467e73e10b1bf256d",
      "tree": "707a5812a2d6a711838babe41fd4947b96f13649",
      "parents": [
        "c725a3705ba8646e134091981e84da99fe4076b1"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Feb 13 21:04:12 2012 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Feb 24 13:47:00 2012 -0500"
      },
      "message": "New notification priority and related APIs.\n\nThis change introduces a few new bits of data on\nNotification that will help the Notification Manager and\nSystem UI route and display them more intelligently:\n\n -\u003e priority: an integer in a predefined range that\n    indicates the app\u0027s best guess as to the relative\n    importance (to the user, right now) of that information\n\n -\u003e kind: a tag (really, set of tags) indicating the general\n    type of notification (realtime, asynchronous, etc)\n\n -\u003e extras: a Bundle of additional key/value pairs\n    associated with this notification (currently @hidden)\n\nThe notification manager takes these data into account when\nassigning to each notification a score which is passed with\nthe notification on to the system UI, where it can be used to\naffect presentation. For example:\n\n  - Spammy apps (identified explicitly by the user or by\n    some other means) will have their notifications scored\n    very negatively by the notification manager, allowing\n    the UI to suppress them\n  - Notifications of higher score might be shown larger\n    or in a different way\n  - Very important notifications (indicated by a very high\n    score) might interrupt the user during an otherwise\n    important task (videochat, game, etc)\n\nImplementation note: This replaces/extends the old internal\nnotion of \"priority\", which was mostly used to organize\nongoings and system notifications at the top of the panel.\n\nChange-Id: Ie063dc75f198a68e2b5734a3aa0cacb5aba1ac39\n"
    },
    {
      "commit": "bd2516165e4d38f1ee7f7f0ceb038ebf7ea1b84a",
      "tree": "4ebfad1a1e2f0b32a4dfeac002bcb147b6699871",
      "parents": [
        "394906170cbee383aef01acf17dfffece3de1cae"
      ],
      "author": {
        "name": "Alon Albert",
        "email": "aalbert@google.com",
        "time": "Thu Feb 23 10:30:51 2012 -0800"
      },
      "committer": {
        "name": "Alon Albert",
        "email": "aalbert@google.com",
        "time": "Fri Feb 24 09:40:27 2012 -0800"
      },
      "message": "Add new Reminder Method: Alarm\n\nChange-Id: I7c0bc3c7eb1cc3b76900a04760ace52a5535b617\n"
    },
    {
      "commit": "e639da7baa23121e35aa06d6e182558e0e755696",
      "tree": "7d956fc301eb1988a8646ff3a62786639a843da0",
      "parents": [
        "b8678d76c3e09d0d65255f3971b6112a48e19099"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 21 15:11:13 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 23 16:39:15 2012 -0800"
      },
      "message": "New development permissions.\n\nThese are permissions that an application can request, but won\u0027t\nnormally be granted.  To have the permission granted, the user\nmust explicitly do so through a new \"adb shell pm grant\" command.\n\nI put these permissions in the \"development tools\" permission\ngroup.  Looking at the stuff there, I think all of the permissions\nwe already had in that group should be turned to development\npermissions; I don\u0027t think any of them are protecting public APIs,\nand they are really not things normal applications should use.\n\nThe support this, the protectionLevel of a permission has been\nmodified to consist of a base protection type with additional\nflags.  The signatureOrSystem permission has thus been converted\nto a signature base type with a new \"system\" flag; you can use\n\"system\" and/or \"dangerous\" flags with signature permissions as\ndesired.\n\nThe permissions UI has been updated to understand these new types\nof permissions and know when to display them.  Along with doing\nthat, it also now shows you which permissions are new when updating\nan existing application.\n\nThis also starts laying the ground-work for \"optional\" permissions\n(which development permissions are a certain specialized form of).\nCompleting that work requires some more features in the package\nmanager to understand generic optional permissions (having a\nfacility to not apply them when installing), along with the\nappropriate UI for the app and user to manage those permissions.\n\nChange-Id: I6571785c6bb5f6b291862b7a9be584885f88f3a5\n"
    },
    {
      "commit": "88572f7a3e9d7ef85c26865a0150f3c2041561c2",
      "tree": "30627dcff98dfa4a4058054ef198301b374be82c",
      "parents": [
        "745e02ae45d97fd5672ffc22ea854f011895a4e6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 21 11:47:18 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 22 15:06:06 2012 -0800"
      },
      "message": "Implementation of a java media codec interface and associated tools.\n\nChange-Id: I13e54062d4de584355c5d82bb027a68aeaf2923b\n"
    },
    {
      "commit": "6d3d5057b445069e73fd06adbc11fa412e7c48c3",
      "tree": "ed57e591ab52911b368cf340574109df4d976dc0",
      "parents": [
        "e800892c4b4e05914f0d08a7928113193b39d037"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Feb 15 20:22:56 2012 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Feb 16 16:42:20 2012 -0800"
      },
      "message": "Improve textDirection APIs\n\nChange-Id: I8bff30f5adb0ab4077145d83ac4a716e04f289ac\n"
    },
    {
      "commit": "ccb1562e90d955416b9096d802464e37925486ef",
      "tree": "3e5b5e9be6762aa3f325d10c387e0692ed6cd564",
      "parents": [
        "c4c0a22ae982af65a16ef93d0cd3bc72149e9bfa"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Feb 15 15:52:19 2012 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Feb 15 15:52:19 2012 -0800"
      },
      "message": "Add View.onResolvePadding() as a public API\n\n- following a comment from Dianne on this CL:\n\nChange-Id: Ifa11d6ac423f205d0684297d25885eac1a89f279\nhttps://android-git.corp.google.com/g/#/c/123009/1\n"
    },
    {
      "commit": "aba0336170a856133e66f9bab509221d4934614b",
      "tree": "1ec9a372f54a7ea3419fdde2b607a89d45d107e0",
      "parents": [
        "6be163651c988736e0fd2af4bc4dc1e59753d7ee"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Feb 15 15:30:37 2012 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Feb 15 15:30:37 2012 -0800"
      },
      "message": "Fix the build\n\nChange-Id: I7c6a2536e894efde951e70188597f39811e2091f\n"
    },
    {
      "commit": "54546f22fbec63f8c12e56fa7109706a1bbc4e7b",
      "tree": "d5dea25a3272b20efbbcc31056c43bbc4bfcfd13",
      "parents": [
        "308b1eaa0a97811585a71341b7c94111a55e013c"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Feb 14 16:26:16 2012 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Feb 15 14:54:48 2012 -0800"
      },
      "message": "Make MarginLayoutParams startMargin and endMargin API public\n\nChange-Id: I519f8ede818b068883ee1565d28e188298af9f0e\n"
    },
    {
      "commit": "2c884826b23e5c8cd3c9497a781c631927b74819",
      "tree": "8fad36bd41fc47d494342d17a299e2d74d0923f5",
      "parents": [
        "cb1abb15a7f98a90fedb9bcce081d4a617ed82f8"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Feb 14 17:05:10 2012 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Feb 15 13:57:09 2012 -0800"
      },
      "message": "Make View paddingStart and paddingEnd API public\n\nChange-Id: I39fd987c866e8bfadbaa9a29c0e38b3b7ce03f7e\n"
    },
    {
      "commit": "e7beae3f4c9c170c7c6c42cf9b572f0ee1ec9c81",
      "tree": "e2eb306b5d118d6f4b30792d6248fa3673063e4d",
      "parents": [
        "95d4c9934f27b2c7276005b0235e0da44a89aea8"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Mon Feb 13 15:23:57 2012 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Mon Feb 13 17:21:05 2012 -0800"
      },
      "message": "Make textDirection API public\n\nChange-Id: I2d5a0e3a990b9a5b78a3bbc8df7f655702743e4b\n"
    },
    {
      "commit": "7a29d84f0150b49215726d08a69d343df74e02bc",
      "tree": "1f9ba2f40da12366b85ca74f0f8541510adef4fd",
      "parents": [
        "27b51987dd3fa7e18703aab45fa10625a56d8c98",
        "47d248eb438674ab0ca10154f3ff5e88f4ed70b7"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Mon Feb 13 14:01:28 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 13 14:01:28 2012 -0800"
      },
      "message": "Merge \"Fix bug #5904777 GridLayout should be RTL aware\""
    },
    {
      "commit": "47d248eb438674ab0ca10154f3ff5e88f4ed70b7",
      "tree": "22206a64356856a9ee53157dcd63d77e1894c96e",
      "parents": [
        "7ff3144aa6a4c5e6f0f64933ce174b424cfbfd6e"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Feb 08 17:57:48 2012 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Mon Feb 13 13:52:47 2012 -0800"
      },
      "message": "Fix bug #5904777 GridLayout should be RTL aware\n\n- update also DEBUG mode for taking care about RTL\n- one minor issue remaining: left alignment is not properly honored in RTL\n\nChange-Id: I9a4c8413cb1189a032649472016994642418637b\n"
    },
    {
      "commit": "9c1d2980f2c7c73f098d551499c4fd48cdc96b4d",
      "tree": "559c7bd47b544c5b06e4c5ba01e6a016a749490b",
      "parents": [
        "d262744b7e4fd9e01a9a0a5d70927328e9391bf9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 10 12:36:18 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 10 13:02:11 2012 -0800"
      },
      "message": "Clean up and expose LongSparseArray.\n\nChange-Id: I15ba98d65e790ba45391cc7714f60b6e7de6ebfc\n"
    },
    {
      "commit": "d262744b7e4fd9e01a9a0a5d70927328e9391bf9",
      "tree": "b986a6e15d59b9ae63fb15e25cc57cbe13a792f5",
      "parents": [
        "f59f92f1ac33e39a3cba2a060cbf360d4b681a4d",
        "21fbd1f7da53dc044737803dccddf8099f1fc1e9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 10 11:14:39 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 11:14:39 2012 -0800"
      },
      "message": "Merge \"Some cruft removal.\""
    },
    {
      "commit": "21fbd1f7da53dc044737803dccddf8099f1fc1e9",
      "tree": "e8de991996e1a5df738066683f6c5124efa33a9d",
      "parents": [
        "d10035d52bcd4eed9f83cad580d606cd522dd6c7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 10 10:38:10 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 10 10:54:15 2012 -0800"
      },
      "message": "Some cruft removal.\n\nChange-Id: If4a94bfd4a033748eb13e8f3ff25e24382746778\n"
    },
    {
      "commit": "59d46b06653b5f55c2f26d3ff8d642ffda0cecd8",
      "tree": "bdd117467060579bace40958f00a5066bdaf6bff",
      "parents": [
        "55ee84154b3afe07afef6311f707928856840f89",
        "688bd47fccf1a1373e6287bc49b5b33fad12b7f3"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Feb 10 02:22:57 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 02:22:57 2012 -0800"
      },
      "message": "Merge \"Add an api to switch to the next IME and subtype\""
    },
    {
      "commit": "688bd47fccf1a1373e6287bc49b5b33fad12b7f3",
      "tree": "8b394c364fc55aad2d87188156a058ef52d43fd5",
      "parents": [
        "ed219c117d449304bd720fc7d7da1f361015dc58"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Feb 09 20:09:17 2012 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Feb 10 16:44:12 2012 +0900"
      },
      "message": "Add an api to switch to the next IME and subtype\n\nBug: 5975302\n\nChange-Id: I48aa4220159c65f456d61a324efcdf0a1ceec91c\n"
    },
    {
      "commit": "a0c283eac33dd2da72235751bbfa4f2d9898d5ea",
      "tree": "4a772771c79de9a0817115a49b5018397cd64add",
      "parents": [
        "f6a7e1f7cd12fbbb2e35391850aec7d7d57b8f66"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 10:47:01 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 11:18:33 2012 -0800"
      },
      "message": "Add new feature for running services in \"isolated\" sandbox processes.\n\nThis reserves a range of uids (for each user) in which these processes\nrun.  These uids are not associated with an application, so they\neffectively run with no permissions.  When a Service requests to\nrun in such a process through android:isolatedProcess\u003d\"true\", each\ntime it is brought up a new isolated process is started with its\nown unique uid.\n\nWhat we have so far gives us the basic infrastructure; more work\nremains to further lock down what these uids have access to.\n\nChange-Id: Ibfd27c75619cba61f528f46ede9113f98dc5f45b\n"
    },
    {
      "commit": "a33de55404eb2133d1bae2add3f6e8708459f56d",
      "tree": "1d15e532f2d950bec42317d6d43d48c7ebc1ae67",
      "parents": [
        "4651c0ea80d0b64f8c689d8257b86414628daf9d"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Feb 03 16:28:24 2012 -0800"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Feb 03 16:28:24 2012 -0800"
      },
      "message": "Make the TimeAnimator class public.\n\nThis class has existed since ICS, but was hidden. This change\njust makes it public API.\nAlso, cleaned up some internal javadocs.\n\nChange-Id: Id69408446ced183e01d2b065a67397eb305d9665\n"
    },
    {
      "commit": "ec99f609cc2db862db307f7ba56a2400c58403a0",
      "tree": "6fe7103e5cf1e34819149e92d0699c299dec854e",
      "parents": [
        "c445ed701ade87e5a15f161483fb0200ff5e3e4a",
        "4c1241df8f8b7fd5ec3dff6c7e0f66271248e76e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 02 18:50:55 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 18:50:55 2012 -0800"
      },
      "message": "Merge \"Rename CancellationSignal using preferred spelling.\""
    },
    {
      "commit": "4c1241df8f8b7fd5ec3dff6c7e0f66271248e76e",
      "tree": "36df1bce8fe7295d0ab778ca519232a291a3294f",
      "parents": [
        "8ca8a69d5801ad4b809e7b9dbf53bd728820924b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 02 17:05:00 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 02 18:02:16 2012 -0800"
      },
      "message": "Rename CancellationSignal using preferred spelling.\n\nBug: 5943637\nChange-Id: I12a339f285f4db58e79acb5fd8ec2fc1acda5265\n"
    },
    {
      "commit": "96d4f4d8d80974bfff2c29cb6abc0a64e28bb800",
      "tree": "68c04b583dcb2c3f416f853f3a8cd916969f359d",
      "parents": [
        "8e195a20d87895921ca3652d41d3e02daf36ca8b",
        "874d1f1f65a989405b3c1f692014ef2072e09f5e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 02 16:15:16 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 16:15:16 2012 -0800"
      },
      "message": "Merge \"Unhide AAC_ADTS file format\""
    },
    {
      "commit": "874d1f1f65a989405b3c1f692014ef2072e09f5e",
      "tree": "780d3c94ea2c3409a78b00221c65c441e3abaf97",
      "parents": [
        "b2305815f04d64a2e6abf672618676bbb197dee9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 02 11:54:43 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 02 15:50:24 2012 -0800"
      },
      "message": "Unhide AAC_ADTS file format\n\no also actually decprecated RAW_AMR file format\n\nChange-Id: Ic8ef5b0dca6f793fddf9e79d431e79f5083f7bff\n"
    },
    {
      "commit": "895f99e9ca3500ad69e9ae8d1a8f28237075c7c7",
      "tree": "9f21628d043cc3453ce97f6522369587287702e1",
      "parents": [
        "8ca8a69d5801ad4b809e7b9dbf53bd728820924b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 02 11:49:12 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 02 14:13:08 2012 -0800"
      },
      "message": "New global setting for developer options.\n\nChange-Id: I3f60538e9f858858501c5b063b0da97675d445a6\n"
    },
    {
      "commit": "c38fa1f63674971f9ac6ced1a449fb81026b62f7",
      "tree": "980e021b46c606b7b5ba7a33ad2b40a55a4a3d11",
      "parents": [
        "26daa02bdb0c62f8162ad8d4d771cabce8644b4a"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Feb 01 16:37:46 2012 -0800"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Feb 02 08:40:44 2012 -0800"
      },
      "message": "Add Developer Option setting for Animator scaling.\n\nThis new setting allows users to set a scale factor for the\nduration and startDelay of all Animator-based animations. This\nsetting is very similar to the Transition animation scale and\nWindow animation scale settings, except this one applies specifically\nto Animator animations. The property is only accessible by users\nthrough the Settings UI, not programmatically. The value applies\nsystem-wide and is picked up per-process at the time of the first\nValueAnimator construction.\n\nThis is an update to a previous CL; this approach uses the WindowManager\nto store the animator scale settings, instead of SystemProperties.\n\nChange-Id: I8295fab060aa6d597ae507ded8f9c9d6077be966\n"
    },
    {
      "commit": "88de70f3c5824acae7524a774f9d2e2a6d125eb9",
      "tree": "bbd16928e5d75317e4981c8960d9d770b66a7dbe",
      "parents": [
        "9dbfc331b42371c5bcb1d8ec7750f4cd4f914123",
        "54ee2adf1711ce34c309c65c17ed6fd4d8f0d632"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Feb 01 16:54:53 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 01 16:54:53 2012 -0800"
      },
      "message": "Merge \"Deprecate ACTION_BACKGROUND_DATA_SETTING_CHANGED.\""
    },
    {
      "commit": "9dbfc331b42371c5bcb1d8ec7750f4cd4f914123",
      "tree": "d0905b6219bfe97820477a4bee368f0d8887e6b9",
      "parents": [
        "bbf1bc8b6c3348265930ce08506efbbd3c5ab61f",
        "b19a71a20adb48c084e87d06a1e6b0dcb49170f5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Feb 01 16:31:48 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 01 16:31:48 2012 -0800"
      },
      "message": "Merge \"Support automatic cancellation of Loaders.\""
    },
    {
      "commit": "b19a71a20adb48c084e87d06a1e6b0dcb49170f5",
      "tree": "7b44bc9ebdf25842136091c6318c29f1c16a9ecf",
      "parents": [
        "f10d69f30107f27465684630460615443783f2bc"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jan 31 11:48:39 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Feb 01 16:30:14 2012 -0800"
      },
      "message": "Support automatic cancellation of Loaders.\n\nChange-Id: I18d3f49e413f48fcdd519d15e99c238ad54d35b9\n"
    },
    {
      "commit": "f46723b41f723ebfc9ed18c7c409b319f4b5e539",
      "tree": "c422815c0dee0488d32045d82693ee825a3f1217",
      "parents": [
        "c97992b489161a47f156f03ba605273dfb5e5cc2"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jan 26 14:19:24 2012 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 01 14:36:34 2012 -0800"
      },
      "message": "Implement background vs foreground broadcasts\n\nBefore now, receiving a broadcast would cause a process to be hoisted\nto foreground priority / cgroup.  This is no longer the case: broadcasts\nby default are handled in the background, with a suitably increased\ntimeout interval.  When a given broadcast needs to be dealt with in a\nmore timely manner, the issuer can set the new FLAG_BROADCAST_FOREGROUND\nflag on the Intent, which will produce the old foreground-priority\nbehavior.\n\nTo avoid priority inversions, foreground broadcasts are tracked on a\nseparate outgoing queue and can be in flight simultaneously with a\nbackground-priority broadcast.  If there is already a background-level\nbroadcast in flight to a given app and then a foreground-level one is\ndispatched to that app, the app [and its handling of both broadcasts]\nwill be properly hoisted to foreground priority.\n\nThis change is also essentially the first step towards refactoring the\nbroadcast-handling portions of the Activity Manager into a more\nindependent existence.  Making BroadcastQueue a top-level class and\nregularizing its operation viz the primary Activity Manager operation\nis the next step.\n\nChange-Id: If1be33156dc22dcce318edbb5846b08df8e7bed5\n"
    },
    {
      "commit": "d2726ba47ef49ff7de5cd955d702d0bb99432b4a",
      "tree": "22b3570ceeec854d61c0625e37317c2c0b14d8a8",
      "parents": [
        "6c997a9e880e08c354ffd809bd62df9e25e9c4d4"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 31 14:09:29 2012 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 31 15:56:40 2012 -0800"
      },
      "message": "Add tools specific annotations to the API.\n\nThose annotations are not runtime retention and have zero impact\non the device builds.\n\nChange-Id: I18d905fccfe18eb621e1411d7ae7ba97910cc727\n"
    },
    {
      "commit": "a403a2e0f0d55a709821a6310de849176dc9b426",
      "tree": "8cdc846441318890696fb20de4f5aa5d5cf721fe",
      "parents": [
        "81bf15ac36c27f068fe770d32c247673bd98a068",
        "8bd9698b66d2e1219931ca1be5f81efaba3ed95a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 31 12:12:38 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 31 12:12:38 2012 -0800"
      },
      "message": "Merge \"Add GradientDrawable.setColors(int[])\""
    },
    {
      "commit": "8bd9698b66d2e1219931ca1be5f81efaba3ed95a",
      "tree": "0fe7df8719381358142a924974bfe60eb37a4373",
      "parents": [
        "74d7ca133a6db82abba5c0abe443fb001928e72c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 31 12:11:02 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 31 12:11:02 2012 -0800"
      },
      "message": "Add GradientDrawable.setColors(int[])\n\nThis change also updates the documentation to warn the user about which properties\nrequire a call to mutate().\n\nChange-Id: I84717068bf026669e3eef1ae92db665a964fe08a\n"
    },
    {
      "commit": "c1ca665827f0c34419a55c005254c1aaa0d58b40",
      "tree": "2c2ffa84065a0d73a341edf79681454765c25654",
      "parents": [
        "ed73440416eac56f20054239d6e8480caae1b6d3"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Jan 31 07:33:48 2012 -0800"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Jan 31 10:50:14 2012 -0800"
      },
      "message": "Add new ViewPropertyAnimator utility methods\n\nUsers have requested the ability to sequence ViewPropertyAnimator\nanimations. it is not possible with AnimatorSet, which only takes objects\nof type Animator (which VPA does not extend). But the AnimatorSet model\nis not appropriate for VPA anyway, since it is not possible to set up\na VPA ahead of time to start later; it\u0027s just not the way that VPA is\nintended to work.\n\nInstead, there are now two new methods on VPA, onStart() and onEnd(). These\nmethods take a Runnable which is executed when the animation starts or ends.\nThese methods should allow other VPAs or other arbitrary code to execute at the\nstart or finish of any particular VPA animation, allowing simple sequencing\nwithout the overhead of creating listeners and monitoring the cancelation status\nof the VPA.\n\nAdditionally, this change adds a new method withLayer() which sets a hardware\nlayer on the VPA\u0027s target view for the duration of the animation. This\nwas already possible, but required writing boilerplate code to create a listener\nand override the start/end methods to add and remove the layer. This utility method\nmakes this common use case much simpler and less error-prone.\n\nChange-Id: I819978517e17c647ffb7028063cd0adde68ff691\n"
    },
    {
      "commit": "54ee2adf1711ce34c309c65c17ed6fd4d8f0d632",
      "tree": "ddd3f973ee4723d0b9ad9b1f2acfc0ea5d40b07e",
      "parents": [
        "4d6da8649afc43022a156bffca6cd2c9127cefe1"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Jan 30 16:29:24 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Jan 30 16:32:54 2012 -0800"
      },
      "message": "Deprecate ACTION_BACKGROUND_DATA_SETTING_CHANGED.\n\nBroadcast is no longer sent, except during first boot after platform\nupgrade.\n\nChange-Id: I7a9c105b5783ca9f9c3aca2efff6fe5c13a4c1fd\n"
    },
    {
      "commit": "0d29936ec3b5545a415e8d032150ea987aab36e3",
      "tree": "19cdedc6152a24eeeaebd51d64bf245626623461",
      "parents": [
        "acabf488674e0f5a6d0fa6d1da5e36b417a681a0"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Jan 26 10:51:48 2012 -0800"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Jan 30 07:53:59 2012 -0800"
      },
      "message": "Fix bug in LayoutTransition for INVISIBLE views\n\nWhen a view is becoming VISIBLE or INVISIBLE in a container with a\nLayoutTransition, animations run to fade the view in and out and also\nto run \u0027changing\u0027 animations on the view\u0027s other siblings. This logic\nalso cancels any running \u0027changin\u0027 animations to account for new ones\nrunning.\n\nHowever, in the specific case of INVISIBLE changes, there will be no\nlayout changes in the container - layout has already accounted for that\nview (unlike in the case of GONE views); the visibility is just a matter of\ndrawing the view (or not). Therefore, we\u0027re canceling \u0027changing\u0027 animations\nthat should continue running and not replacing them with any other animations,\nsince new animations would only be started on layout chnages which are not\nforthcoming.\n\nOne artifact seen from this bug is that the navigation bar buttons sometimes\ndisappear when changing orientation. This is because the menu button may\ntoggle between VISIBLE and INVISIBLE, causing animations on the other\nbuttons to get canceled, which leaves those views in a completely wrong\nstate.\n\nThe right thing to do is to avoid canceling in-process \u0027changing\u0027 animations\nand to skip the logic of setting up new \u0027changing\u0027 animations which won\u0027t fire\nanyway.\n\nThere is some minor API work in here because we did not previously have the\nnecessary information in LayoutTransition to know whether a view was being\nhidden or shown to/from the INVISIBLE state.\n\nIssue #5911213: LayoutTransitions ending in an odd state\n\nChange-Id: I5c60c8583c8ea08965727b4ef17b550c40a3882c\n"
    },
    {
      "commit": "2d2d7d6f42fe22ecc2b1dc8bb96a19e503a61a20",
      "tree": "edae78645ac19facd02fd3c081e34b6444d8d81b",
      "parents": [
        "30c918ce7fbe171944b28fc91b3f22b3d631872d",
        "75ea64fc54f328d37b115cfb1ded1e45c30380ed"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jan 27 17:37:24 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 27 17:37:24 2012 -0800"
      },
      "message": "Merge \"Implement a cancelation mechanism for queries.\""
    },
    {
      "commit": "75ea64fc54f328d37b115cfb1ded1e45c30380ed",
      "tree": "4254a5d2d0662de8b606b38fea6987da17c130e3",
      "parents": [
        "ebc016c01ea9d5707287cfc19ccc59b21a486c00"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jan 25 19:37:13 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jan 27 17:33:21 2012 -0800"
      },
      "message": "Implement a cancelation mechanism for queries.\n\nAdded new API to enable cancelation of SQLite and content provider\nqueries by means of a CancelationSignal object.  The application\ncreates a CancelationSignal object and passes it as an argument\nto the query.  The cancelation signal can then be used to cancel\nthe query while it is executing.\n\nIf the cancelation signal is raised before the query is executed,\nthen it is immediately terminated.\n\nChange-Id: If2c76e9a7e56ea5e98768b6d4f225f0a1ca61c61\n"
    },
    {
      "commit": "fbc659e259816b97877f49ff6ca1bd637fd7b7b8",
      "tree": "9d7434d42aac66b28f1d67ae25a6e552ac4570ed",
      "parents": [
        "cee905be4874f6d3f112527a53b0f7ff87655c66",
        "21c136a4ec91392ffc783c2a76b2a49252eb4de3"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Jan 27 10:35:12 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 27 10:35:12 2012 -0800"
      },
      "message": "Merge \"Fix build: update current.txt\""
    },
    {
      "commit": "21c136a4ec91392ffc783c2a76b2a49252eb4de3",
      "tree": "ea29eb7c7b09ba404145c03c0703d5bf7a1dca69",
      "parents": [
        "1f5badc1cb08f10ddf4b09aaaf34060a23999a51"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Jan 27 10:34:18 2012 -0800"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Jan 27 10:34:18 2012 -0800"
      },
      "message": "Fix build: update current.txt\n\nChange-Id: Ic28314e98784ebe513bd2191d3fa6c9bd5674422\n"
    },
    {
      "commit": "ef78d96b905f7b55cef5df7f5582a249a685458f",
      "tree": "8084afe714011a9655ced963adddcfb4fb0a5a95",
      "parents": [
        "7bea65020872a9945a6938068c4922d33cef5b4e",
        "1f5badc1cb08f10ddf4b09aaaf34060a23999a51"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Jan 27 09:59:10 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 27 09:59:10 2012 -0800"
      },
      "message": "Merge \"Add NdefMessage.getByteLength(), and more minor fixes:\""
    },
    {
      "commit": "1f5badc1cb08f10ddf4b09aaaf34060a23999a51",
      "tree": "1ed4d116df4898dd11e85cd48b0d83a099cb006b",
      "parents": [
        "7e4ef61732d7de33e34f5935cfad51049f65116a"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Jan 24 13:22:58 2012 -0800"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Jan 26 14:21:19 2012 -0800"
      },
      "message": "Add NdefMessage.getByteLength(), and more minor fixes:\n\nRemove NdefMessage from dispatch(). It\u0027s already in the Tag.\n/*package*/ cleanup\nFix sitemap after removal of NFCDemo\n\nChange-Id: Ie1f6d9ea98144aa97f56bb709a33f5d0ef916e8b\n"
    },
    {
      "commit": "259c1090464b966b8019abfae848a96895ecdbcd",
      "tree": "076a20ad9138ae6e905fd17a5becd7b102a5e8db",
      "parents": [
        "7e4ef61732d7de33e34f5935cfad51049f65116a"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Wed Jan 25 17:44:00 2012 -0800"
      },
      "committer": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Thu Jan 26 13:46:25 2012 -0800"
      },
      "message": "Remove @deprecate in View\u0027s fadingEdge\n\nThe comment of this field is also aggregated in the android.R.styleable#View\ndescription. As a result, the @deprecated in the comment of this field also\napplies to android.R.styleable#View which incorrectly appears deprecated.\n\nThis fixes the problem, although fadingEdge will no longer be marked as\ndeprecated in IDEs. I believe it is less important that to make View\ndeprecated.\n\nChange-Id: I96d8e868001c4c853eb1536f8401275b9b1e689b\n"
    },
    {
      "commit": "52da22f2731cf5f312be9a913295af6638e49595",
      "tree": "8c1675aaf29a956c1a1edf8b3448fe62dc2d9f8a",
      "parents": [
        "3f696b264e4a3dd28421e9e1a58fe2c6241f48e4",
        "d96e3dfa02b203b1fc826e80d6f9aa074ba9c250"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 25 16:15:43 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 25 16:15:43 2012 -0800"
      },
      "message": "Merge \"Add xxhdpi; fix ActivityManager.getLauncherLargeIconSize() etc.\""
    },
    {
      "commit": "d96e3dfa02b203b1fc826e80d6f9aa074ba9c250",
      "tree": "a91a318c43620b6523bd2e83be01632f223b153c",
      "parents": [
        "43ea4e10dc402d20f506cdb4b4f27e49b4dc0443"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 25 15:12:23 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 25 15:14:50 2012 -0800"
      },
      "message": "Add xxhdpi; fix ActivityManager.getLauncherLargeIconSize() etc.\n\nChange-Id: I519d6cdc527a402d93b98df17a64fc1da52ad598\n"
    },
    {
      "commit": "c97a552023c3c71079b39092e80c9b44f25a789b",
      "tree": "639e700cdd538f2ebd080143182fa30bb32fdd2a",
      "parents": [
        "dc828acd5fadb266b13cce459b1cacfad8ef7aef"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Jan 05 15:13:01 2012 +1100"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Jan 25 13:17:19 2012 -0800"
      },
      "message": "Improve NDEF API\u0027s\n\no Add NdefRecord.toMimeType()\n  Maps the record to a MIME type\no Add NdefRecord.toUri()\n  Maps the record to a URI\no Add hidden NfcAdapter.dispatch()\n  Helps test the dispatch path.\no Modify createMime(), createUri() and createExternal():\n  Do not try and strictly follow RFC requirements for URI or MIME content\n  types. This just leads to heartbreak - the RFC requirements are too strict.\n  For example RFC1341 forbids the use of \u0027.\u0027 in a MIME type, however this is in\n  common use in types such as \"application/vnd.companyname\". I think the best\n  approach is to only remove \u0027obvious\u0027 whitespace issues, and to convert\n  uppercase to lowercase as per Android guidelines.\n\nChange-Id: Id686f5f3b05b2dceafad48e1cfcbdb2b3890b854\n"
    },
    {
      "commit": "dc828acd5fadb266b13cce459b1cacfad8ef7aef",
      "tree": "b455a0448edbc7f0075a5a0ab8510f070ef5b140",
      "parents": [
        "43ea4e10dc402d20f506cdb4b4f27e49b4dc0443",
        "ccae412deda8b0c165c86f395752c0667a3411a6"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Jan 25 12:55:58 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 25 12:55:58 2012 -0800"
      },
      "message": "Merge \"Add API\u0027s for normalizing MIME\u0027s and URI\u0027s.\""
    },
    {
      "commit": "43ea4e10dc402d20f506cdb4b4f27e49b4dc0443",
      "tree": "dfe0152c138c5ea28395b0244a3495b29671e305",
      "parents": [
        "56965f97b33941440ffa0fc711d5d0f68ea45170",
        "81e9276a479fd3a5ccc3129505c0fb018941934b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 25 12:29:17 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 25 12:29:17 2012 -0800"
      },
      "message": "Merge \"Added JELLY_BEAN version name; update some targetSdkVersion docs.\""
    },
    {
      "commit": "81e9276a479fd3a5ccc3129505c0fb018941934b",
      "tree": "adc9f1b8b1b90d52ceb063b193610a4aa6a4629c",
      "parents": [
        "3df01599879e2bed32960911394fc9e2a8fcbc33"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Oct 09 16:00:21 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 25 11:16:57 2012 -0800"
      },
      "message": "Added JELLY_BEAN version name; update some targetSdkVersion docs.\n\nChange-Id: Ia38ff5b9ad2b63c2cf667260881222d9ff168052\n"
    },
    {
      "commit": "ccae412deda8b0c165c86f395752c0667a3411a6",
      "tree": "3ddc03df0182a5b372c2d38e27d5a7c312cf9e31",
      "parents": [
        "07d7d5a22dbb0a8df5631c8014f4706dd1e449da"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Jan 09 14:12:58 2012 -0800"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Jan 24 20:04:13 2012 -0800"
      },
      "message": "Add API\u0027s for normalizing MIME\u0027s and URI\u0027s.\n\nHelps developers create well-behaved intents:\n- lower case MIME data type\n- strip parameters from MIME content types\n- lowercase URI scheme\n\nThe new API\u0027s are\nnormalizeAndSetType()\nnormalizeAndSetData()\nnormalizeAndSetDataAndType()\nUri.normalize()\nnormalizeMimeType()\n\nChange-Id: Ib5c907897f39b1f705bcc4c9103ba1e6f316380b\n"
    },
    {
      "commit": "3f9c9eab7b41c409c3c7b503b89ad340e408b6a0",
      "tree": "5e56e93d10668f08cb2af2b763ed0b8f5bc39c5f",
      "parents": [
        "d4e34d61d01222ff90684b9a1dc4f9c8be560e7c"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 24 12:02:31 2012 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 24 12:09:11 2012 -0800"
      },
      "message": "NumberPicker should not throw an exception if no enough values for wrapping.\n\n1. The selector wheel was throwing an exception if a client requires that it\n   wraps its selector wheel if the number of values is less that the number\n   of values shown in the wheel.  While wrapping makes no sense if the all\n   possible values are already shown, we should not throw an exception,\n   rather to ignore the request.\n\nbug:5911190\n\nChange-Id: Icd90cd39f66d9f39939801752bf1eb1eef8fe757\n"
    },
    {
      "commit": "d4e34d61d01222ff90684b9a1dc4f9c8be560e7c",
      "tree": "4812d10e24bcaaf6e67933ea831554e29861da2f",
      "parents": [
        "b934a82139d555c40638226852390d53bb611cd7",
        "655e66bceba7595a2b80e7a328433e6ed5dc28a9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jan 23 17:36:06 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 23 17:36:06 2012 -0800"
      },
      "message": "Merge \"Inform ContentObservers about the changed content Uri.\""
    },
    {
      "commit": "b934a82139d555c40638226852390d53bb611cd7",
      "tree": "e8f0daba6a3b8fadd4d5efaa70835679df30fe13",
      "parents": [
        "1a54368b24a8cb88ee56ee746eae45171a43b89e",
        "86de0590b94bcce27e3038c27464bed510bb564a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jan 23 17:35:50 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 23 17:35:50 2012 -0800"
      },
      "message": "Merge \"Clean up content observer code.\""
    },
    {
      "commit": "655e66bceba7595a2b80e7a328433e6ed5dc28a9",
      "tree": "79dfc3c3008d34e4969a1c123da90ce27a207edf",
      "parents": [
        "86de0590b94bcce27e3038c27464bed510bb564a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jan 23 15:51:41 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jan 23 17:28:29 2012 -0800"
      },
      "message": "Inform ContentObservers about the changed content Uri.\n\nAdded a new method ContentObserver.onChange(boolean, Uri) that\nreceives the changed content Uri.  This can help applications make\nbetter decisions about how to interpret a change notification.\n\nChange-Id: I8e35378b6485fe22c5bc240ba07557d269af0836\n"
    },
    {
      "commit": "e575005f7c7a2ec26662862631ca1d0d1959d6bc",
      "tree": "4014e5e14e7cbabf02e2894cb9f309b605675dfc",
      "parents": [
        "eda775cc89b862e0637af132d78168e1b28820f8",
        "36d7549181af397cfaf879f46e407e762e0e8cba"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 23 16:27:50 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 23 16:27:50 2012 -0800"
      },
      "message": "Merge \"Update hardware acceleration doc\""
    }
  ],
  "next": "36d7549181af397cfaf879f46e407e762e0e8cba"
}
