)]}'
{
  "log": [
    {
      "commit": "0887711d0f76d858501fd017259ddfdc1950eb3f",
      "tree": "c83889d776cc95e7db6cc7d339c1e775efde5530",
      "parents": [
        "1227233b6fcb9a6ef1aee8daa34bc3e18191f0db",
        "0c89049ebf463bde186c41fe9fad63ad27182eb2"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Sep 21 07:30:42 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 21 07:30:43 2012 -0700"
      },
      "message": "Merge \"Add Notification.Builder.setShowWhen(boolean).\" into jb-mr1-dev"
    },
    {
      "commit": "e5de9919b421b319aa0126aaae00573863d7a5bc",
      "tree": "321138d7a04dfc36bc67a10cefb6e8154061847f",
      "parents": [
        "b4544d68b04b98642a3799207c7a28838c865739"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Sep 20 21:57:46 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Sep 20 21:57:46 2012 -0700"
      },
      "message": "Fix the build.\n\nChange-Id: I80e2c915ba4c10dcb53b6a21152dc787e16d9e8f\n"
    },
    {
      "commit": "e6ff47840fc6d8ac5ba551101684011e328b4caa",
      "tree": "caafaf1151351fe1bdfbb28b8febaa3d4595871c",
      "parents": [
        "a21ad1a39423a22921511432f61dbfe2f4b3e58b",
        "9f9d34552f53c534141584a5ad4a8a49ad7939dc"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Sep 20 16:54:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 20 16:55:40 2012 -0700"
      },
      "message": "Merge \"Use less static synchronized\" into jb-mr1-dev"
    },
    {
      "commit": "9f9d34552f53c534141584a5ad4a8a49ad7939dc",
      "tree": "88f99d0babbe1caab44b49446ba9aabda877c7c8",
      "parents": [
        "4dd3c3797060b35c8e6ebbbdd164c17c6db7b5ec"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Sep 20 13:18:59 2012 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Sep 20 15:25:16 2012 -0700"
      },
      "message": "Use less static synchronized\n\n Bug: 6482144\n\nChange-Id: I86161e3298101c10a112add406615001561e649e\n"
    },
    {
      "commit": "d86077c3792ca03f004376d81e449a3ecdaa5e8b",
      "tree": "c1232404956017227ffa8ae9b1ca0b1bfaa0ee79",
      "parents": [
        "ca2cb1841099c7206af93149d0326308e0d3f81a",
        "62796aac596f556a1871358bb8ce93af9d55c5a5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Sep 20 12:45:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 20 12:45:45 2012 -0700"
      },
      "message": "Merge \"Expose android.media.AudioManager.getProperty()\" into jb-mr1-dev"
    },
    {
      "commit": "62796aac596f556a1871358bb8ce93af9d55c5a5",
      "tree": "e782025ea858a8779cffeee0ea3c60964f26fec0",
      "parents": [
        "e0de5bfff2e74ee566ac2d053052de09aa25e54b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Sep 20 08:08:07 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Sep 20 12:28:20 2012 -0700"
      },
      "message": "Expose android.media.AudioManager.getProperty()\n\nAlso fix minor documentation errors.\n\nBug: 6635041\nChange-Id: I6bbbf1b7c5ab705ac374436ea0c098cb3c27fd4a\n"
    },
    {
      "commit": "f9fac2c5fe3f304ee866b1afc3191d36835e96bd",
      "tree": "34a472708a40071f8642a4b6c741e297c9b2c16b",
      "parents": [
        "4dd3c3797060b35c8e6ebbbdd164c17c6db7b5ec",
        "bc0fab1fc2db832ef86d8a33466ec4d68b103ca0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 20 11:18:17 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 20 11:18:17 2012 -0700"
      },
      "message": "Merge \"Add multi user volume management\" into jb-mr1-dev"
    },
    {
      "commit": "f4f6b4c8b0fcf77d46567f13b409255948fe107b",
      "tree": "245e81a594160905fbaf8e3933f99c9b679d0388",
      "parents": [
        "5d1a870a25f7495755432a42cf8c81818dc369fa"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Sat Aug 25 12:08:03 2012 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Sep 19 17:36:50 2012 -0400"
      },
      "message": "Fire \"dreaming started\" and \"dreaming stopped\" broadcasts.\n\nDream manager now fires broadcast intents when entering + exiting\ndreamland (except when testing).\n\nPower manager can now listen for dreams ending, using polling only\nas a backstop.\n\nAlso:\n - Bullet-proof dream-manager/dream against known failure modes\n - Add new read/write dream permissions\n - Refactor dream-manager to delegate work + state management into\n   a new DreamController class, via a handler\n\nBug:6999949\nBug:7152024\nChange-Id: I986bb7812209d8c95ae1d660a5eee5998a7b08b1\n"
    },
    {
      "commit": "bc0fab1fc2db832ef86d8a33466ec4d68b103ca0",
      "tree": "ce2033cc1c2398bd3476e0c8a8d2ce73edd088ec",
      "parents": [
        "c31f5a7efe97952ba25b35e0eb9e6e59dc0d0e8e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 19 11:24:41 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 19 14:16:08 2012 -0700"
      },
      "message": "Add multi user volume management\n\nNotification and Alarm volumes are per user: they are saved and restored\nwhen the foreground user changes.\nMedia volume is global: it is still saved and restored per user for\nimplentation reasons but is copied from one user to the next to ensure\nmedia playback volume continuity when switching users.\n\nRinger mode (silent, vibrate...) is now a global setting.\n\nBug 7128886.\n\nChange-Id: I9f4f5a0a3985552bca61c2cc3bbe5a144db755a6\n"
    },
    {
      "commit": "5d1a870a25f7495755432a42cf8c81818dc369fa",
      "tree": "5c354c95de0cd340f2e2efe3ff9694060042091f",
      "parents": [
        "5d4206a55c5336a163408422ba3302f5fd8463f7",
        "b4db962da0fecd9a6f2714148bbdea023610842f"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Sep 19 01:31:34 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 19 01:31:36 2012 -0700"
      },
      "message": "Merge \"Add APIs to enable SNI and session tickets on sockets.\" into jb-mr1-dev"
    },
    {
      "commit": "2d95a33dc3a463b197d4597b38f5ae124de25017",
      "tree": "3154715e4fb4af1a388486d3fc7693c7b1e3b4c8",
      "parents": [
        "4e54f930d4dcd297f45507883b9404e1a5ef703b",
        "9e6e5ae243c7aae24b9c059d1d9f56b14f9b0850"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Sep 18 19:11:17 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 18 19:11:18 2012 -0700"
      },
      "message": "Merge \"Fix build.  Missed current.txt in previous checkin.\" into jb-mr1-dev"
    },
    {
      "commit": "9e6e5ae243c7aae24b9c059d1d9f56b14f9b0850",
      "tree": "08246bb6067d3115c51095f45a13001da860a361",
      "parents": [
        "e69e9e6b6e77d6c7b1ba2719b7aa7001bbbabb32"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Sep 18 19:10:34 2012 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Sep 18 19:10:34 2012 -0700"
      },
      "message": "Fix build.  Missed current.txt in previous checkin.\n\nChange-Id: I458944fbd9b04526068d03330620ad4805b5c993\n"
    },
    {
      "commit": "9ffc6047f14883f853b643a2913bd590995b9031",
      "tree": "5d20e6cb1d509845a912162546b951c69109d0dc",
      "parents": [
        "29d0aa73a099fde05c506857b5d215cde87b78d6",
        "c11f77fbae8391ca3c2d3ec93d024cba0be5cf55"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 18 15:42:34 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 18 15:42:34 2012 -0700"
      },
      "message": "Merge \"Fix bug #7173155 API REVIEW: android.view.View\" into jb-mr1-dev"
    },
    {
      "commit": "c11f77fbae8391ca3c2d3ec93d024cba0be5cf55",
      "tree": "0cc895b980fb997cf7ccfd62d2c2cec17d358467",
      "parents": [
        "5e900e3a17a87e91a0d190bc1c96efc440eb026a"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 18 15:33:07 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 18 15:33:07 2012 -0700"
      },
      "message": "Fix bug #7173155 API REVIEW: android.view.View\n\n- remove getFocusRect(Rect) as it was redundant\n- fix Javadoc\n\nChange-Id: I3784c4b0a38770cba5d3ba09196f9271050a3c20\n"
    },
    {
      "commit": "8b3560d3e68d6e596bc22b117b049e15cc7e1b3b",
      "tree": "c23ada7c393122556ab7e60c3e59b7fddea93a16",
      "parents": [
        "20586fa0353f63453766140b32a4778793ce2b43",
        "f358260af4cd34961acc13d849819c8b6089f309"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 18 14:49:10 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 18 14:50:47 2012 -0700"
      },
      "message": "Merge \"Fix bug #7172972 API REVIEW: android.graphics.drawable.Drawable\" into jb-mr1-dev"
    },
    {
      "commit": "20586fa0353f63453766140b32a4778793ce2b43",
      "tree": "67ccc94c6166d0f84b88c6c250754417f76f71dd",
      "parents": [
        "642258a29b426b14da509df3a5ed912673feeb57",
        "d3d9f3f1004dfee2649a26cfe8dba948cd364904"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 18 14:47:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 18 14:48:48 2012 -0700"
      },
      "message": "Merge \"Fix bug #7173351 API REVIEW: android.util.LocaleUtil\" into jb-mr1-dev"
    },
    {
      "commit": "f358260af4cd34961acc13d849819c8b6089f309",
      "tree": "afe6425feb2d4992e834f192ec549a9d52b597b4",
      "parents": [
        "5e900e3a17a87e91a0d190bc1c96efc440eb026a"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 18 13:38:53 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 18 13:38:53 2012 -0700"
      },
      "message": "Fix bug #7172972 API REVIEW: android.graphics.drawable.Drawable\n\n- add @hide\n\nChange-Id: I20dca8d7f6a58dfd1dd342135dcff912e08d4ab9\n"
    },
    {
      "commit": "a21636074aee3a4291ba3bb7b0eb038dfeccfbb5",
      "tree": "b8bf94385cb5060108b442113a0f9db621813d38",
      "parents": [
        "24ed2769130a8f9df44e7fc22be52b6282e724c3",
        "08a81583c18a849e442ceeb8d7baeca743fb3be8"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Sep 18 13:24:55 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 18 13:24:56 2012 -0700"
      },
      "message": "Merge \"Add Kernel, Method, and field IDs bug 7182873\" into jb-mr1-dev"
    },
    {
      "commit": "d3d9f3f1004dfee2649a26cfe8dba948cd364904",
      "tree": "089a87a8ecaf116fddfff6af95aadbb54e6203da",
      "parents": [
        "5e900e3a17a87e91a0d190bc1c96efc440eb026a"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 18 12:55:32 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 18 12:55:32 2012 -0700"
      },
      "message": "Fix bug #7173351 API REVIEW: android.util.LocaleUtil\n\nChange-Id: I08fd491eff714059e9ec874fadebe7eb556c34d5\n"
    },
    {
      "commit": "08a81583c18a849e442ceeb8d7baeca743fb3be8",
      "tree": "e249bd2794008cd5c21c7b4c23c9e03d441d017f",
      "parents": [
        "21dfd7c5fe9e42d2ef3ac7423065c86dfe8f29da"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Sep 18 12:32:10 2012 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Sep 18 12:32:10 2012 -0700"
      },
      "message": "Add Kernel, Method, and field IDs\nbug 7182873\n\nChange-Id: I066a359bb04027e9376dac088560f042c496b10e\n"
    },
    {
      "commit": "00bc4c0b6723bda12e846f9f1f729acb79a389a1",
      "tree": "6aa7113186f6432d51fd54b2917bb8dbcafb5397",
      "parents": [
        "465d72073c6d47a27b51d384bd9e019faa7957c1",
        "ed41a4e2d81fceafbddb1e9a4ca327535bb739ef"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Tue Sep 18 11:39:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 18 11:39:14 2012 -0700"
      },
      "message": "Merge \"Initial commit for X509TrustManagerExtensions.\" into jb-mr1-dev"
    },
    {
      "commit": "ed41a4e2d81fceafbddb1e9a4ca327535bb739ef",
      "tree": "d04f0f38aa0c0211ccf5a9ac81b885f85eacc6b2",
      "parents": [
        "9f5f80e7a64d9388e3e73763b5c73dcddaa729fc"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Fri Sep 14 18:11:29 2012 -0700"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Tue Sep 18 11:29:46 2012 -0700"
      },
      "message": "Initial commit for X509TrustManagerExtensions.\n\nThis provides a mechanism for exposing the bells\nand whistles we\u0027ve attached to trust managers to\nthird parties.\n\nChange-Id: If117ffd2240a7bf3437115f3cf2f766c4e249600\n"
    },
    {
      "commit": "b4db962da0fecd9a6f2714148bbdea023610842f",
      "tree": "6583368b0c7f96c258c4114b84a520ae9a5a4664",
      "parents": [
        "5dbeb6a8ff8ae30f59ba8335c2354b883302428e"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Sep 17 17:59:00 2012 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Sep 18 10:56:24 2012 +0100"
      },
      "message": "Add APIs to enable SNI and session tickets on sockets.\n\nChange-Id: I34c546b22d31476a670c0e8f5724185e838903b0\n"
    },
    {
      "commit": "68d789782b706b0828acfc2cd45d410d2f7d590a",
      "tree": "69300252c88e95c39a61af9e7622704a4cbb9c4f",
      "parents": [
        "f7a6dfcafc1eaa8014b4fa796e4b31208f72fd36",
        "d6c1cc4a9db1edd873168aabb8cfa6937cfd2a56"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Sep 17 23:26:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 17 23:26:30 2012 -0700"
      },
      "message": "Merge \"Fix build - current.txt regenerated\" into jb-mr1-dev"
    },
    {
      "commit": "d6c1cc4a9db1edd873168aabb8cfa6937cfd2a56",
      "tree": "ad9bfa2005c154ba01197c3049d5edc00755a884",
      "parents": [
        "417e267a7507abfaddf9303dd2e925438bb7f0a6"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Sep 17 23:24:38 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Sep 17 23:24:38 2012 -0700"
      },
      "message": "Fix build - current.txt regenerated\n\nChange-Id: I3d6e96f8144522f0b4fafcf9836f58f149866550\n"
    },
    {
      "commit": "c33f94e2a50c9b03cb771237e8672743da8b1314",
      "tree": "96eeabb685ce7a2aca518ab8ffe994afb7330185",
      "parents": [
        "82f385a372329b767876ace2b3715a2d8ec13221",
        "8832c18d8b63367929c2d394c9c508f56003d400"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 17 18:22:37 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 17 18:22:38 2012 -0700"
      },
      "message": "Merge \"Fix API review bugs.\" into jb-mr1-dev"
    },
    {
      "commit": "8832c18d8b63367929c2d394c9c508f56003d400",
      "tree": "8c4f4082a674e7500e34d0a4bef66e52d4ea9400",
      "parents": [
        "c71a57d6fa45edf67e79e948b4656fa25a11f1b8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 17 17:20:24 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 17 17:27:15 2012 -0700"
      },
      "message": "Fix API review bugs.\n\n7173152 API REVIEW: android.content.pm.PackageUserState\n7172969 API REVIEW: android.app.PendingIntent\n7172730 API REVIEW: android.content.Context\n7172726 API REVIEW: android.manifest.permission\n\nChange-Id: Iad470256d3b5ca5596487f6a699ec1871457c3b5\n"
    },
    {
      "commit": "417e267a7507abfaddf9303dd2e925438bb7f0a6",
      "tree": "34d2fc36c604ec1bb7bc1aee0a18f6e4cf9000ab",
      "parents": [
        "4215017c12a4d522e20a6164ff33e8ca7da3a3bd",
        "8e1c2b6b71c4e3649dcf59a0b5a33e3e3fe1051a"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Mon Sep 17 15:47:10 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 17 15:47:11 2012 -0700"
      },
      "message": "Merge \"Revert \"Simple MVC based binding mechanism for android controls.\" Do not merge.\" into jb-mr1-dev"
    },
    {
      "commit": "7134ef60b7ebe81b37dffdd65f22a9aae80e3d14",
      "tree": "5a9f0df9b5025564e010c95f0978750cb0fcad7c",
      "parents": [
        "e2f0ec8923d42b47225225345a960e41dfbb5bd1",
        "34de3bc309fd9077cc1aa1e1af82652670fdb9df"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 17 14:45:42 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 17 14:45:42 2012 -0700"
      },
      "message": "Merge \"Fix date formatting for fa locales.\" into jb-mr1-dev"
    },
    {
      "commit": "8e1c2b6b71c4e3649dcf59a0b5a33e3e3fe1051a",
      "tree": "8c5dccad3eb7a986d62584dea491d7f31df84394",
      "parents": [
        "18e876806718e28edaa3cd9bb0262a9b400bc82b"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@dhcp-172-18-103-220.mtv.corp.google.com",
        "time": "Mon Sep 17 14:25:07 2012 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Mon Sep 17 14:31:03 2012 -0700"
      },
      "message": "Revert \"Simple MVC based binding mechanism for android controls.\" Do not merge.\n\nThis reverts commit 989709a973448980f36dacd587b0a58f89ffa11e.\n\nChange-Id: Ifc2c511b0d99d4a3a164b4a2281ca140015b366d\n"
    },
    {
      "commit": "34de3bc309fd9077cc1aa1e1af82652670fdb9df",
      "tree": "79f950e44a922abab58d2d3892143b9a4600450e",
      "parents": [
        "d0c6ccbafdebc73d03cf3cd47f02f9f6c78a69ff"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 14 21:10:05 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 17 11:17:10 2012 -0700"
      },
      "message": "Fix date formatting for fa locales.\n\nThis adds support for standalone months (L versus M) and localized\ndigits.\n\nBug: 6811327\nChange-Id: I4687a4c67605c31b155c0b8d44b3da6ed378fc82\n"
    },
    {
      "commit": "2ca2c8787130506d350d997c18bbc274faf88e37",
      "tree": "4a7fbb089e90282576c0fb0e326a89ae30f92c12",
      "parents": [
        "d65afc65ea5b2bf83889dd88a9c94f895da8aece"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 16 16:03:36 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 16 16:41:27 2012 -0700"
      },
      "message": "More adjustments to permissions.\n\n- New \"cost money\" flag can be put on a permission to\n  have this emphasized in the UI.\n- Some further re-organization of permissions to better\n  match UX spec.\n\nChange-Id: I450ac739eff6b90e7c7fc39589d68db82b61f897\n"
    },
    {
      "commit": "d65afc65ea5b2bf83889dd88a9c94f895da8aece",
      "tree": "128e635a32ae4ca7b2ecbe72f616d6c01702ad77",
      "parents": [
        "398bad04a0ced9dacda185db8af7526002631f62",
        "5dc5a00e7ebadc085ded7e29feacd17e53698486"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 16 00:05:45 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 16 00:05:46 2012 -0700"
      },
      "message": "Merge \"More multi-user stuff.\" into jb-mr1-dev"
    },
    {
      "commit": "5dc5a00e7ebadc085ded7e29feacd17e53698486",
      "tree": "8ab1c5a18136c424da04509b8274e581fe1f0edc",
      "parents": [
        "494ac35c27a0960f57b00bf8457f1956ecf149a2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 15 19:33:48 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 15 23:58:55 2012 -0700"
      },
      "message": "More multi-user stuff.\n\n- New public APIs to find out when a user goes to the foreground,\n  background, and is first initializing.\n- New activity manager callback to be involved in the user switch\n  process, allowing other services to let it know when it is safe\n  to stop freezing the screen.\n- Wallpaper service now implements this to handle its user switch,\n  telling the activity manager when it is done.  (Currently this is\n  only handling the old wallpaper going away, we need a little more\n  work to correctly wait for the new wallpaper to get added.)\n- Lock screen now implements the callback to do its user switch.  It\n  also now locks itself when this happens, instead of relying on\n  some other entity making sure it is locked.\n- Pre-boot broadcasts now go to all users.\n- WallpaperManager now has an API to find out if a named wallpaper is\n  in use by any users.\n\nChange-Id: I27877aef1d82126c0a1428c3d1861619ee5f8653\n"
    },
    {
      "commit": "ee100445b7c1f8789d1c8ff7d4ae2d28656657db",
      "tree": "c3f773ea52d9541825aaa4b91533604728d6527a",
      "parents": [
        "b3571a6ca8877181695ddbd916c2be73625e5a99"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Sep 14 21:57:38 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Sep 14 21:57:38 2012 -0700"
      },
      "message": "Updating public API.\n\nChange-Id: I7b549af9af5cee21600fb356a411794320e84c56\n"
    },
    {
      "commit": "b3571a6ca8877181695ddbd916c2be73625e5a99",
      "tree": "3b6f2196977de5e9c3698797cfb50b2b2a131cfd",
      "parents": [
        "edf60d3d0ab0b9e14c023ecf7aacf72c480dec24",
        "5f9c4c475fd25623406ccdaa1ac08e56631d4d22"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Fri Sep 14 21:16:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 14 21:16:03 2012 -0700"
      },
      "message": "Merge \"Fix build\" into jb-mr1-dev"
    },
    {
      "commit": "5f9c4c475fd25623406ccdaa1ac08e56631d4d22",
      "tree": "6fd8acbc93278ab40ad85963c8056296bc3b34fe",
      "parents": [
        "cdfc56a3872f6bae7c43aedd5c718c5fa3fbdf9d"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Sep 14 18:35:41 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Sep 14 21:15:29 2012 -0700"
      },
      "message": "Fix build\n\n(Deprecation changes are considered API changes.  I knew that.)\n\nChange-Id: I58da073875efc77b833fa55ce15541fd48c5d335\n"
    },
    {
      "commit": "1c9894aa7f0eaa9ab562c1c384317456fd99dd6c",
      "tree": "8762c28fea8cd4df09f30065321bd4ac9fb6503e",
      "parents": [
        "424968261fb346859a7ac796703527f2e34c0a84",
        "ce24985ad636c38b6ee01ec9cdecfb038bfeaeb6"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Sep 14 16:55:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 14 16:55:47 2012 -0700"
      },
      "message": "Merge \"Remove AndroidKeyStore from API\" into jb-mr1-dev"
    },
    {
      "commit": "9ceede6d7e250922e63b0d2c90403089f8736e0c",
      "tree": "15a239af155c40487768604e8ddcb1af0e4c9200",
      "parents": [
        "0b62fa234d2e3580b1f04cb9c4a6a308be99a5ae",
        "086676a4a669b5d3a90c01e4d88ab8d628ca65f0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 14 16:39:12 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 14 16:39:12 2012 -0700"
      },
      "message": "am 086676a4: am f5437ee8: am 297ad257: Merge \"Deprecate those parts of DateUtils the documentation says not to use.\"\n\n* commit \u0027086676a4a669b5d3a90c01e4d88ab8d628ca65f0\u0027:\n  Deprecate those parts of DateUtils the documentation says not to use.\n"
    },
    {
      "commit": "ce24985ad636c38b6ee01ec9cdecfb038bfeaeb6",
      "tree": "0fd76d777fe86ee580ba0bcb03e0c6be327e2738",
      "parents": [
        "0b62fa234d2e3580b1f04cb9c4a6a308be99a5ae"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Sep 14 16:19:31 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Sep 14 16:23:37 2012 -0700"
      },
      "message": "Remove AndroidKeyStore from API\n\nChange-Id: Ibe09d78e5a5b86604f01144f344525bff94c2dde\n"
    },
    {
      "commit": "d3c01012d8d329e541214e8207272ab5cc9ca004",
      "tree": "0ee9305ba8529dd084afba16798261e6f6a0e380",
      "parents": [
        "bb60bc26020f3aabc50aa93ad9bf812af7f48f9c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 28 18:57:13 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 14 16:06:50 2012 -0700"
      },
      "message": "Deprecate those parts of DateUtils the documentation says not to use.\n\nApplications using these fields and methods are just asking for i18n bugs.\n\nAlso @deprecate two int[]s that were never meant to be public.\n\nChange-Id: I29b3a1c0c663fe344d2567df6ed3bb537270b3b7\n"
    },
    {
      "commit": "3efa8babf581b107f63e29dedb56166e5db1bfdb",
      "tree": "7f9e312e7d7d79906c6528baf4bdbdb5c4696780",
      "parents": [
        "b4ad71aee547d37ff65e67d2fd8743da0b17b258",
        "77276b60851a158ad3e142cb3b091d57ae5ceffb"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Sep 14 15:16:27 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 14 15:16:27 2012 -0700"
      },
      "message": "Merge \"Adding accessibility events for touch and gesture detection states.\" into jb-mr1-dev"
    },
    {
      "commit": "77276b60851a158ad3e142cb3b091d57ae5ceffb",
      "tree": "3d7419ce6118a55cc770df36941ab9d63e7703db",
      "parents": [
        "b8c50e8e44bb757d18fc7f069332c186099aca77"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Sep 14 10:23:00 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Sep 14 15:12:54 2012 -0700"
      },
      "message": "Adding accessibility events for touch and gesture detection states.\n\n1. Currently the system fires accessibility events to announce the\n   start and end of a touch exploration gesture. However, such a\n   gesture starts after we have decided that the user is not\n   performing a gesture which is achieved by measuring speed of\n   movement during a threshold distance. This allows an accessibility\n   service to provide some feedback to the user so he knows that\n   he is touch exploring.\n\n   This change adds event types for the first and last touches\n   of the user. Note that the first touch does not conincide with\n   the start of a touch exploration gesture since we need a time\n   or distance to pass before we know whether the user explores\n   or gestures. However, it is very useful for an accessibility\n   service to know when the user starts to interact with the\n   touch screen so it can turn the speech off, to name one\n   compelling use case.\n\n   This change also provides event types for the start and end\n   of gesture detection. If the user has moved over the threshold\n   with a speed greater than X, then the system detects gestures.\n   It is useful for an accessibility service to know the begin\n   and end of gesture detection so it can provide given feedback\n   type for such a gesture, say it may produce haptic feedback\n   or sound that differs for the one for touch exploration.\n\n   The main benefit of announcing these new events is that an\n   accessibility service can provide feedback for each touch\n   state allowing the user to always know what he is doing.\n\nbug:7166935\n\nChange-Id: I26270d774cc059cb921d6a4254bc0aab0530c1dd\n"
    },
    {
      "commit": "4cb846b8defa298fe62e6420d1dcd7d8f65a1d74",
      "tree": "cb303ad7a97dd1d473b5d6e4c5d8b83a7dcaf672",
      "parents": [
        "51fbaff11c195d3004f872d19f98a20fa6c44456",
        "f4912580e6adc90ab37b07b8108c7334f359e317"
      ],
      "author": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Fri Sep 14 14:01:34 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 14 14:01:37 2012 -0700"
      },
      "message": "Merge \"Hiding some of the deprecated android.webkit API\u0027s\" into jb-mr1-dev"
    },
    {
      "commit": "3240ad0f395bf262a7cf1a2e8a6117465aaa42b2",
      "tree": "b54807c6d0e547f14a2a20488a8cdc378cdefd50",
      "parents": [
        "33aef98fd28dcac0a2ad37e7329afd3e666f5e0a"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Sep 13 19:40:03 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Sep 13 19:40:03 2012 -0700"
      },
      "message": "Fix the build\n\nChange-Id: Ibdabfbd70fe27188be3361792b2886dec78a49d4\n"
    },
    {
      "commit": "33aef98fd28dcac0a2ad37e7329afd3e666f5e0a",
      "tree": "c15eda4e3ad6a426ef88b45815bb623fe81e0680",
      "parents": [
        "0f7551341f7504632e4943c66d6a4fd504bf5a0e"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Sep 13 12:49:03 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Sep 13 18:41:40 2012 -0700"
      },
      "message": "Allowing association between a view and its label for accessibility.\n\n1. For accessibility purposes it is important to be able to associate\n   a view with content with a view that labels it. For example, if\n   an accessibility service knows that a TextView is associated with\n   an EditText, it can provide much richer feedback.\n\n   This change adds APIs for setting a view to be the label for another\n   one and setting the label for a view, i.e. the reverse association.\n\nbug:5016937\n\nChange-Id: I7b837265c5ed9302e3ce352396dc6e88413038b5\n"
    },
    {
      "commit": "80d819033d4687507907f787d47379b7b37eae19",
      "tree": "8a6533a8e512adeb453644ad98f918a6e919a372",
      "parents": [
        "83cdb021eb9a8cfe26cd565febadb1a70380f3a9"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Sep 13 17:00:48 2012 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Sep 13 17:00:48 2012 -0700"
      },
      "message": "Unhide intrinsics and document API.\n\nChange-Id: I0233245c68f9a08780213062e62cfea6cf909c13\n"
    },
    {
      "commit": "0c89049ebf463bde186c41fe9fad63ad27182eb2",
      "tree": "4d6d00a087368e7c8d4b2dac21937e80bbf0243e",
      "parents": [
        "8a0e1fefeeefac5024ff1ca1d044caa66b6c36a6"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Sep 12 17:23:10 2012 -0700"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Sep 13 13:17:54 2012 -0700"
      },
      "message": "Add Notification.Builder.setShowWhen(boolean).\n\nNo more setting when to 0 to hide the timestamp! *cheering*\n\nBug: 6915046\nChange-Id: I1560a1c2dd366d416d1d059704ca7c63149334eb\n"
    },
    {
      "commit": "8a788cbfe5570fadee7aea1a06f6eee2cb7ed341",
      "tree": "9d5b961f483e7860c76c0b4bf0e24dcfe1de2f49",
      "parents": [
        "86398b694697f504798ccda129df578e231e2274"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Sep 13 11:44:20 2012 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Sep 13 11:44:20 2012 -0700"
      },
      "message": "Fix build.\n\nAdd new permission constants to public api\n\nChange-Id: Iedde8c43f3738b51b74a81b72e9a39f51b43fc9d\n"
    },
    {
      "commit": "f353f948a5867fb43c9ee1dbec1ebc93f91655ec",
      "tree": "7403e0bb861dc75d8e3f6e4a2df930b5d172a894",
      "parents": [
        "f60921d921947d7d40285f471a09b0478044c29c",
        "af87681f48b26f38008bb04fc473e16b7306bc54"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Sep 13 11:15:15 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 13 11:15:15 2012 -0700"
      },
      "message": "Merge \"NEW_API: Unhide android.hardware.Camera#enableShutterSound\" into jb-mr1-dev"
    },
    {
      "commit": "bd7057f777f81598e30e00529e8f3bde41247858",
      "tree": "f6877f4186667c6d87dab8bbe5d48457a153a9c5",
      "parents": [
        "3e451fa128e5b7beb22b413eb5600d6c980e5a29"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 12 21:58:25 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 12 21:58:25 2012 -0700"
      },
      "message": "Fix build.\n\nChange-Id: Ie655344e7752393b231f093beb7575def437cc77\n"
    },
    {
      "commit": "7454d3b73cfd0d7ad58b0285102b09aad1e0150f",
      "tree": "bd3ad3f7d67b9a82e08c538a160b59a8e16de83c",
      "parents": [
        "2a4057d2e915a0726d8775a196374e320a9f15dc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 12 17:22:00 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 12 18:57:07 2012 -0700"
      },
      "message": "New permissions UI, again.\n\nChange-Id: I0bbecd88ff1f212b30d1ef32d5bcaa49cdf1e9ce\n"
    },
    {
      "commit": "b967464049d7a75face9237a89903342c4724f8a",
      "tree": "0788336eb05de7ce3aa5e388192974af8a93ee56",
      "parents": [
        "4f8da32ffaf7aaf1f670e74caa7cd8a70ddb63c6",
        "a40627daee4891ab842fa509af254b349bff3a47"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Sep 12 13:25:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 12 13:25:22 2012 -0700"
      },
      "message": "Merge \"Enforce encapsulation for MarginLayoutParams startMargin and endMargin\" into jb-mr1-dev"
    },
    {
      "commit": "4f8da32ffaf7aaf1f670e74caa7cd8a70ddb63c6",
      "tree": "f56bcdf3e87fc143cc9b488fd4f43dd5b5fd2cf9",
      "parents": [
        "743115ffcd5f7b04d8b485bbfc5440216c3aaf4f",
        "e91d5bee241f30513b82263bc71b56abfde8ad8d"
      ],
      "author": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Wed Sep 12 12:48:31 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 12 12:48:32 2012 -0700"
      },
      "message": "Merge \"Make JavascriptInterface annotation public.\" into jb-mr1-dev"
    },
    {
      "commit": "bd0fe8783407bc760b8e9a9952cb96a600d26ea9",
      "tree": "4a3d402b7dd3535dcb9e7f2eb2adcd0c4929a709",
      "parents": [
        "568e3ebb5e7814fb68179a9755a686a0e1deec70",
        "5cc2351ded6a13fadcc3bb14fdaf31ac66c05b2d"
      ],
      "author": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Wed Sep 12 09:34:37 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 12 09:34:37 2012 -0700"
      },
      "message": "Merge \"Deprecating methods (and a constant) for JB MR1\" into jb-mr1-dev"
    },
    {
      "commit": "e91d5bee241f30513b82263bc71b56abfde8ad8d",
      "tree": "814ab0f83791087776a023f6cdac3cf88f0a2805",
      "parents": [
        "0bb4d078afeadf4996240d0ac41514c28e5f795a"
      ],
      "author": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Tue Sep 11 16:11:22 2012 -0700"
      },
      "committer": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Wed Sep 12 08:04:26 2012 -0700"
      },
      "message": "Make JavascriptInterface annotation public.\n\nBug: 7073422\n\nThis change makes @JavascriptInterface public and it requires\nusing this annotation to allow javascript access to public java\nmethods for API level JELLY_BEAN_MR1 and above. The behavior\ndoes not change for API levels JELLY_BEAN and below.\n\nChange-Id: I4108b17cf71b9ac273d7b61b1c8f7f5581e922ee\n"
    },
    {
      "commit": "a40627daee4891ab842fa509af254b349bff3a47",
      "tree": "fba0f1a50dc3d7d98a4b1e0faa74ffe6585cb21a",
      "parents": [
        "e11dc0ddab438d3b6545bc5d1582e1deddb5d465"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 11 16:47:21 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 11 17:16:36 2012 -0700"
      },
      "message": "Enforce encapsulation for MarginLayoutParams startMargin and endMargin\n\nChange-Id: Ibaf5ade22612dfa52173978e4b520a6407162d13\n"
    },
    {
      "commit": "2071e8408a8fdf87e2cf9a8b881da8c46cf6a737",
      "tree": "fd895e24aad60f5ac62a09c94c854da94fe50c02",
      "parents": [
        "aec914b1301b9608053b77318c8ea86fa162f14d"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Tue Sep 11 13:54:07 2012 -0700"
      },
      "committer": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Tue Sep 11 13:54:07 2012 -0700"
      },
      "message": "Fixing build (update-api)\n\nChange-Id: I78738cc8320dab1fde082bfa9f65d020c6573de7\n"
    },
    {
      "commit": "aec914b1301b9608053b77318c8ea86fa162f14d",
      "tree": "9eb8a821f8fee4f63c05d9a3880179cd2d0feacd",
      "parents": [
        "ea42443e35f04ebd5c8fd6b6b2fc362e2534cb9a",
        "0aa2d42e87e4a1ed5b83f356690e465d6a3587cc"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Tue Sep 11 13:18:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 11 13:18:14 2012 -0700"
      },
      "message": "Merge \"Adding notion of keyguard widgets\" into jb-mr1-dev"
    },
    {
      "commit": "ff5c9146b53d8429f8ee778f193582c12da0d2b3",
      "tree": "ee647683d158da2250f35c6d69761d84a56e25db",
      "parents": [
        "c574fd04cc192fa30af5dd065c5d0cd4c50f8db4",
        "7cfd7d5b65b725d7253295becfe02f03767c71fa"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Sep 11 12:41:10 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 11 12:41:11 2012 -0700"
      },
      "message": "Merge \"NEW_API: Unhide android.hardware.Camera.Parameters#SCENE_MODE_HDR\" into jb-mr1-dev"
    },
    {
      "commit": "7cfd7d5b65b725d7253295becfe02f03767c71fa",
      "tree": "ee8f0a56e9b2d6772db5507c096130abea82bbd4",
      "parents": [
        "da2f0ea10822628875a956e4bf096066c0debe9f"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Sep 11 11:25:50 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Sep 11 11:34:59 2012 -0700"
      },
      "message": "NEW_API: Unhide android.hardware.Camera.Parameters#SCENE_MODE_HDR\n\nBug: 7054970\n\nChange-Id: I509fa18f1203022bb23cd9ef5c70cb3a3fbb8b77\n"
    },
    {
      "commit": "af87681f48b26f38008bb04fc473e16b7306bc54",
      "tree": "1223bbd426ede9671090a368ca2bbcedd51b4f3a",
      "parents": [
        "69fe527bea12f262bfb1a5838f40e3433ad3cb78"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Sep 11 11:16:52 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Sep 11 11:16:52 2012 -0700"
      },
      "message": "NEW_API: Unhide android.hardware.Camera#enableShutterSound\n\nChange-Id: I8e7ef3e035dd261be51874f514d6be2fb8933e96\n"
    },
    {
      "commit": "0aa2d42e87e4a1ed5b83f356690e465d6a3587cc",
      "tree": "ce6f9c5fddd8d6664a8b369b04c7b271a86392a6",
      "parents": [
        "ce3ef0abaa17b12dc0626b06421d58bf06974ae2"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Fri Sep 07 17:37:26 2012 -0700"
      },
      "committer": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Tue Sep 11 10:53:57 2012 -0700"
      },
      "message": "Adding notion of keyguard widgets\n\n-\u003e Persisting certain appwidget options\n-\u003e Adding ability to specify appwidget options on bind\n   so as to avoid AppWidgetProvider update call with no\n   options.\n\nChange-Id: I5631039f19f1822b8e123b559b6353c880c0192e\n"
    },
    {
      "commit": "d7f5a51baf2c46436dc5bac3807fb0d46cbff304",
      "tree": "e58ebfb7e060ecdd1ce769cc3a09f7327d58b762",
      "parents": [
        "e11dc0ddab438d3b6545bc5d1582e1deddb5d465",
        "b38070caa5143ab9fd1883e0c7c879533a480bc7"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Mon Sep 10 14:12:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 10 14:12:48 2012 -0700"
      },
      "message": "Merge \"IME support for trackball and generic motion events\" into jb-mr1-dev"
    },
    {
      "commit": "b38070caa5143ab9fd1883e0c7c879533a480bc7",
      "tree": "ffbed34eefd1fd81a028e1a14820d48953252b29",
      "parents": [
        "37ee53420ce47860807eb8eaeb454c12fa46797b"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Fri Aug 24 13:46:02 2012 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Mon Sep 10 14:01:42 2012 -0700"
      },
      "message": "IME support for trackball and generic motion events\n\nTrackball and generic motion events now pass through the IME in case\nit would like to handle them before passing them on to the view\nhierarchy.\n\nWhile I was at it, I also...\n...fixed the documentation on InputMethodService.onKeyUp()\n...added documentation to InputMethodService.onTrackballEvent()\n...added trackball and generic motion events to the \"input\" command\n...fixed input consistency verification involving ACTION_OUTSIDE\n\nBug: 7050005\nChange-Id: I40ab68df4a9542af6df25de6ec2ec500e4c02902\n"
    },
    {
      "commit": "753e1280cbc3f0006b04f67385f02e1f92019f7d",
      "tree": "ce54912968d860771f437d3e0a70762df0474c92",
      "parents": [
        "799553e02aa3350397d723982d42198a5bab774c",
        "e590dc6f7dfbd00117acfb7aa2ef35bc94e537bd"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Sep 10 00:48:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 10 00:48:26 2012 -0700"
      },
      "message": "Merge \"Unhide INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE.\" into jb-mr1-dev"
    },
    {
      "commit": "1b8ecc5031051b4bba620fac27552e84ca666496",
      "tree": "b4e0c606e9cc3c0cc90b00fb78930af11987f1f3",
      "parents": [
        "add52a975aa78d9e24d3e63a8168c00a9bfb80ec"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 08 17:03:52 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 09 14:41:34 2012 -0700"
      },
      "message": "A little cleanup.\n\nChange-Id: Ie33fd1b02011606e67ce08df3cce887c07680c60\n"
    },
    {
      "commit": "74ee8652e02fc94901177214fc9370659732c921",
      "tree": "d3b5c4848416a4957342f36b326364fb20d8e45e",
      "parents": [
        "d888399ad4a4ec0a08e97518bf22d726a8bd4eaa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 07 18:33:18 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 07 18:33:18 2012 -0700"
      },
      "message": "Add Binder.getCallingUserHandle().\n\nChange-Id: I2a7eedfdc7baeeb4c2cd2ca0153aa95e0cf0bf45\n"
    },
    {
      "commit": "89b3f48fa3ccaf9a05628f0e540c1f94716809f7",
      "tree": "8a02c1f85bd5268122888e517aa3aaf80062d956",
      "parents": [
        "c0be8c85b09002359adb1fb20f2bf08e6983d146",
        "d15ebf25c595b855f6978d0600218e3ea5f31e92"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 07 14:44:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 14:44:43 2012 -0700"
      },
      "message": "Merge \"Enable changing properties of layer paint\" into jb-mr1-dev"
    },
    {
      "commit": "5e03e2ca7d25b899b129baad2dd5eca6bf99d88a",
      "tree": "10c601a58b0bbeb6902d43e0862c58f3ec121c78",
      "parents": [
        "970683c5d42a1d8588d656d4e570ce4f0f6e0abc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 06 14:21:19 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 07 13:55:23 2012 -0700"
      },
      "message": "More multi-user stuff:\n\n- New (hidden) isUserRunning() API.\n- Maintain LRU list of visited users.\n- New FLAG_IS_DATA_ONLY for ApplicationInfo.\n- Clean up pending intent records when force-stopping a user (or package).\n  (Also fixes bug #6880627: PendingIntent.getService() returns stale\n  intent of force stopped app)\n- Fix force-stopping when installing an app to do the force-stop across\n  all users for that app.\n- When selecting which processes to kill during a force stop, do this\n  based on the actual packages loaded in the process, not just process\n  name matching.\n- You can now use --user option in am when starting activities, services,\n  and instrumentation.\n- The am --user option accepts \"current\" and \"all\" as arguments.\n- The pm uninstall command now uninstalls for all users, so it matches\n  the semantics of the install command.\n- PhoneWindowManager now explicitly says to start home in the current\n  user.\n- Activity manager call to retrieve the MIME type from a content provider\n  now takes a user argument, so it will direct this to the proper user.\n- The package manager uninstall paths are now implemented around\n  PackageSetting, not PackageParser.Package.  This allows them to work\n  even if the application\u0027s apk has been removed (in which case it only\n  exists as a PackageSetting, not the PackageParser.Package parsed from\n  the apk).\n\nChange-Id: I3522f6fcf32603090bd6e01cc90ce70b6c5aae40\n"
    },
    {
      "commit": "d15ebf25c595b855f6978d0600218e3ea5f31e92",
      "tree": "35154bd1ec18cf8299a0d737847291ab28a5c98b",
      "parents": [
        "4db5d23deab9ea8de34cdb1c56af31e6e3cff79b"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Sep 05 11:40:29 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 07 13:27:02 2012 -0700"
      },
      "message": "Enable changing properties of layer paint\n\nPreviously, to draw a layered view with a changed Paint object for the\ndrawLayer operation, you\u0027d have to invalidate the parent view, to get the\nnative DisplayList to pick up the new Paint properties. This change adds\nAPI and functionality so that the developer can call setLayerPaint(), which\ndoes the proper invalidation (lightweight, doesn\u0027t cause redrawing the view).\n\nIssue #6923810 Make it easy to efficiently animate a layer\u0027s Paint\n\nChange-Id: I7fea79788d50f6d9c86dd5e5b2a4490cb95142bb\n"
    },
    {
      "commit": "f4912580e6adc90ab37b07b8108c7334f359e317",
      "tree": "e1a7df4a08148685a255032554ccc5eb4c583a90",
      "parents": [
        "5cc2351ded6a13fadcc3bb14fdaf31ac66c05b2d"
      ],
      "author": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Thu Aug 16 15:26:24 2012 -0400"
      },
      "committer": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Fri Sep 07 15:34:20 2012 -0400"
      },
      "message": "Hiding some of the deprecated android.webkit API\u0027s\n\nChange-Id: I1775a2ff615d1633fe9a20a5af49623222d3d27b\n"
    },
    {
      "commit": "5cc2351ded6a13fadcc3bb14fdaf31ac66c05b2d",
      "tree": "39e0045d50fd15631ea53a0faafdc93e9380451f",
      "parents": [
        "fb3ec448f1208d75edebff0e93fa97a8913ff29e"
      ],
      "author": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Thu Aug 09 15:33:08 2012 -0400"
      },
      "committer": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Fri Sep 07 15:34:13 2012 -0400"
      },
      "message": "Deprecating methods (and a constant) for JB MR1\n\nChange-Id: I3eb0eaff5ea5d8984ad143f801efa19e25bd0685\n"
    },
    {
      "commit": "e590dc6f7dfbd00117acfb7aa2ef35bc94e537bd",
      "tree": "fdb43cef7e371b5c7958b8b6cbda29dd6f151cb5",
      "parents": [
        "4848f42f65082340b98da2628761e59567d19d9d"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Sep 07 19:02:34 2012 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Sep 07 19:05:41 2012 +0800"
      },
      "message": "Unhide INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE.\n\nbug:7053266\n\nChange-Id: I4e00199598f57f11250abeab4ce17ced18f41f14\n"
    },
    {
      "commit": "01fa888903fecd2e85bdfa9dd0bceebab6244389",
      "tree": "81a1e616a499c2d4723720f83479d28765f30a20",
      "parents": [
        "4b15ab66a064ba4fae3bb1ff474d8b5fc38e5490",
        "eb9862fd4c6ba1745a0f6c997e85643a4ded0643"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Sep 06 19:43:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 06 19:43:54 2012 -0700"
      },
      "message": "Merge \"Adding FEEDBACK_BRAILLE to AccessibilityServiceInfo.\" into jb-mr1-dev"
    },
    {
      "commit": "eb9862fd4c6ba1745a0f6c997e85643a4ded0643",
      "tree": "694fc7f1593e536dd9da91c095d9e470c4062378",
      "parents": [
        "fa8d83d90444354e8eca6ca0e080bc917e5a1f32"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Sep 06 19:40:29 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Sep 06 19:40:34 2012 -0700"
      },
      "message": "Adding FEEDBACK_BRAILLE to AccessibilityServiceInfo.\n\n1. The feedback type provided by braille devices differs from all\n   already predefined types and this change defines braille\n   feedback type. Braille does not fit in the already predefined\n   categories.\n\nbug:6998945\n\nChange-Id: Ide6043bed03fdecd6d2ee45a08762f5bd07a2118\n"
    },
    {
      "commit": "1cf70bbf96930662cab0e699d70b62865766ff52",
      "tree": "2173762d4e4d7be76f5691cebd74e1bd8f2b8543",
      "parents": [
        "fa8d83d90444354e8eca6ca0e080bc917e5a1f32"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Aug 06 10:53:34 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Sep 06 18:56:17 2012 -0700"
      },
      "message": "Screen magnification - feature - framework.\n\nThis change is the initial check in of the screen magnification\nfeature. This feature enables magnification of the screen via\nglobal gestures (assuming it has been enabled from settings)\nto allow a low vision user to efficiently use an Android device.\n\nInteraction model:\n\n1. Triple tap toggles permanent screen magnification which is magnifying\n   the area around the location of the triple tap. One can think of the\n   location of the triple tap as the center of the magnified viewport.\n   For example, a triple tap when not magnified would magnify the screen\n   and leave it in a magnified state. A triple tapping when magnified would\n   clear magnification and leave the screen in a not magnified state.\n\n2. Triple tap and hold would magnify the screen if not magnified and enable\n   viewport dragging mode until the finger goes up. One can think of this\n   mode as a way to move the magnified viewport since the area around the\n   moving finger will be magnified to fit the screen. For example, if the\n   screen was not magnified and the user triple taps and holds the screen\n   would magnify and the viewport will follow the user\u0027s finger. When the\n   finger goes up the screen will clear zoom out. If the same user interaction\n   is performed when the screen is magnified, the viewport movement will\n   be the same but when the finger goes up the screen will stay magnified.\n   In other words, the initial magnified state is sticky.\n\n3. Pinching with any number of additional fingers when viewport dragging\n   is enabled, i.e. the user triple tapped and holds, would adjust the\n   magnification scale which will become the current default magnification\n   scale. The next time the user magnifies the same magnification scale\n   would be used.\n\n4. When in a permanent magnified state the user can use two or more fingers\n   to pan the viewport. Note that in this mode the content is panned as\n   opposed to the viewport dragging mode in which the viewport is moved.\n\n5. When in a permanent magnified state the user can use three or more\n   fingers to change the magnification scale which will become the current\n   default magnification scale. The next time the user magnifies the same\n   magnification scale would be used.\n\n6. The magnification scale will be persisted in settings and in the cloud.\n\nNote: Since two fingers are used to pan the content in a permanently magnified\n   state no other two finger gestures in touch exploration or applications\n   will work unless the uses zooms out to normal state where all gestures\n   works as expected. This is an intentional tradeoff to allow efficient\n   panning since in a permanently magnified state this would be the dominant\n   action to be performed.\n\nDesign:\n\n1. The window manager exposes APIs for setting accessibility transformation\n   which is a scale and offsets for X and Y axis. The window manager queries\n   the window policy for which windows will not be magnified. For example,\n   the IME windows and the navigation bar are not magnified including windows\n   that are attached to them.\n\n2. The accessibility features such a screen magnification and touch\n   exploration are now impemented as a sequence of transformations on the\n   event stream. The accessibility manager service may request each\n   of these features or both. The behavior of the features is not changed\n   based on the fact that another one is enabled.\n\n3. The screen magnifier keeps a viewport of the content that is magnified\n   which is surrounded by a glow in a magnified state. Interactions outside\n   of the viewport are delegated directly to the application without\n   interpretation. For example, a triple tap on the letter \u0027a\u0027 of the IME\n   would type three letters instead of toggling magnified state. The viewport\n   is updated on screen rotation and on window transitions. For example,\n   when the IME pops up the viewport shrinks.\n\n4. The glow around the viewport is implemented as a special type of window\n   that does not take input focus, cannot be touched, is laid out in the\n   screen coordiates with width and height matching these of the screen.\n   When the magnified region changes the root view of the window draws the\n   hightlight but the size of the window does not change - unless a rotation\n   happens. All changes in the viewport size or showing or hiding it are\n   animated.\n\n5. The viewport is encapsulated in a class that knows how to show,\n   hide, and resize the viewport - potentially animating that.\n   This class uses the new animation framework for animations.\n\n6. The magnification is handled by a magnification controller that\n   keeps track of the current trnasformation to be applied to the screen\n   content and the desired such. If these two are not the same it is\n   responsibility of the magnification controller to reconcile them by\n   potentially animating the transition from one to the other.\n\n7. A dipslay content observer wathces for winodw transitions, screen\n   rotations, and when a rectange on the screen has been reqeusted. This\n   class is responsible for handling interesting state changes such\n   as changing the viewport bounds on IME pop up or screen rotation,\n   panning the content to make a requested rectangle visible on the\n   screen, etc.\n\n8. To implement viewport updates the window manger was updated with APIs\n   to watch for window transitions and when a rectangle has been requested\n   on the screen. These APIs are protected by a signature level permission.\n   Also a parcelable and poolable window info class has been added with\n   APIs for getting the window info given the window token. This enables\n   getting some useful information about a window. There APIs are also\n   signature protected.\n\nbug:6795382\n\nChange-Id: Iec93da8bf6376beebbd4f5167ab7723dc7d9bd00\n"
    },
    {
      "commit": "06efb530a479ea12398c1b3ee4b80e2ac85a1680",
      "tree": "e0b556042183883b892969b6343c193c15a3e7ce",
      "parents": [
        "9e130e70eff57d15c0888f51c4f1a7cc4cd62573"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Aug 24 15:29:27 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Sep 06 16:39:08 2012 -0700"
      },
      "message": "Per-user settings\n\nEach user has its own Settings.System.* and Settings.Secure.* namespace now.  In\naddition, this CL introduces the new Settings.Global.* namespace, which contains\na number of previously-elsewhere named settings entities; these Global.* entities\nare common to all users.  Because these elements have been moved from their prior\nexistence in the other namespaces, attempts to access them under their old names\nand namespaces are detected and redirected (with appropriate compile-time and\nlogging messages) to their new homes.\n\nThe new Global.* namespace can only be written by system-level code, just like\nthe existing Secure.* namespace.  If an app attempts to write a key that was\npreviously in the System.* namespace but has been moved to the Global.* namespace,\nthen a warning is logged and no write is performed; the action is a no-op.  (The\napp is explicitly not crashed, to avoid breaking well-behaved apps that can\u0027t\nknow any better.)\n\nThere is also now a hidden API for getting/setting settings entities associated\nwith a user other than the caller\u0027s.  Reading/writing data for a user other than\nyourself requires the signature-level INTERACT_ACROSS_USERS_FULL permission.\n\nManipulating data for a different user cannot be done via the ContentProvider\nquery() / insert() APIs; you must use the Settings.get/put APIs for that degree\nof control.  In general, use of the get/set API is *strongly* preferred over\nquery-type access to Settings.\n\nBug 6985398\n\nChange-Id: Ibee54ddff99fb847c8c2479c23b50f1e7524d724\n"
    },
    {
      "commit": "62bea2f1710be0d1a42c07109fd4307ded660d3b",
      "tree": "f772341cd06cd3df43bea1572361d226f4faed2f",
      "parents": [
        "18e876806718e28edaa3cd9bb0262a9b400bc82b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 04 18:48:15 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 06 11:05:53 2012 -0700"
      },
      "message": "Nested fragments.\n\nChange-Id: I79acc19b391352c16b06afee2ca543223c38e364\n"
    },
    {
      "commit": "0d727c714b75b9d9c927eca83aacba8938b08537",
      "tree": "37077b3466fb75cde12aefdcdd7ed78460a32f96",
      "parents": [
        "b326fa046b64b05b9969e0a6e89cf48577bfdae1",
        "e62e6d8731ab1e02c1632ebc011792d07b902af8"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Tue Sep 04 20:27:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 20:27:50 2012 -0700"
      },
      "message": "Merge \"Add subtypeId for keeping enabled \"InputMethodSubtype\"s even if subtype parameters are changed\" into jb-mr1-dev"
    },
    {
      "commit": "175ae55c0d62b6adbc9b3cc215ad2e65a8b40cc3",
      "tree": "5892f9df667e5fed3fc3f18be7fb075869883632",
      "parents": [
        "690420831c9b60f7fb2f1100aeef67ad79bfd3bb",
        "b8ec470617590fa2025db869e8e80dcce8eaec23"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Sep 04 15:20:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 15:20:42 2012 -0700"
      },
      "message": "Merge \"Update DevicePolicyManager with ability to disable keyguard widgets\" into jb-mr1-dev"
    },
    {
      "commit": "035ce2ca92742894f7f906c93d7d217c647aa19a",
      "tree": "091278302dd86f6009db3d86ff95dd607fef8c11",
      "parents": [
        "167611811d4fd6318bc366128590701274488e84",
        "5f7979993979466c79ab4f38d83c6f2aca361662"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 04 15:01:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 15:01:03 2012 -0700"
      },
      "message": "Merge \"Add support for \"-rtl\" in resources\" into jb-mr1-dev"
    },
    {
      "commit": "b8ec470617590fa2025db869e8e80dcce8eaec23",
      "tree": "d4341cbea549ffbfad089d16a4b337bfca7688ab",
      "parents": [
        "d2a8df9541c198d555ef6a50347acb9160509863"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Aug 31 17:19:10 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Sep 04 13:52:36 2012 -0700"
      },
      "message": "Update DevicePolicyManager with ability to disable keyguard widgets\n\nChange-Id: I5876e9e180b2a995aaa355fbbb2b67cebb86104d\n"
    },
    {
      "commit": "e62e6d8731ab1e02c1632ebc011792d07b902af8",
      "tree": "179eba3cd548a5c981f95a9c04d3960d546ea2e7",
      "parents": [
        "e94831e5ed4aa3b1ebc5444cc1b16cdab8cb92f8"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Mon Jul 02 18:45:43 2012 +0900"
      },
      "committer": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Tue Sep 04 15:29:03 2012 +0900"
      },
      "message": "Add subtypeId for keeping enabled \"InputMethodSubtype\"s even if subtype parameters are changed\n\nBug: 6752230\nChange-Id: I3a2d512e395fe8645edf6ab82108948b927c629a\n"
    },
    {
      "commit": "f83ec838915c13158ddfda0cf4da5865b260b9c6",
      "tree": "81d0e7f24330cd5a28d5bfd6e899acee6388b562",
      "parents": [
        "3b9a4160c99b2375b4874ccabf92eac68be06af6",
        "4ed8fe75e1dde1a2b9576f3862aecc5a572c56b5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 31 15:49:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 31 15:49:17 2012 -0700"
      },
      "message": "Merge \"More improvements to the display manager.\" into jb-mr1-dev"
    },
    {
      "commit": "3b9a4160c99b2375b4874ccabf92eac68be06af6",
      "tree": "9fbfa35fdf2c0da50bb8a51e548dfacfeaf604b2",
      "parents": [
        "176d105d2f71198966b566d36d4e856a797695c7",
        "a492c3a7b2c18426fd0cb4d017eacbc368195dc5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 31 15:48:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 31 15:48:26 2012 -0700"
      },
      "message": "Merge \"Initial draft of high-level multi-display APIs.\" into jb-mr1-dev"
    },
    {
      "commit": "4ed8fe75e1dde1a2b9576f3862aecc5a572c56b5",
      "tree": "d51a8657c4ca101b5a82c2592d89d789643d388f",
      "parents": [
        "a492c3a7b2c18426fd0cb4d017eacbc368195dc5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 30 18:18:29 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 31 15:42:46 2012 -0700"
      },
      "message": "More improvements to the display manager.\n\nAdded more complete support for logical displays with\nsupport for mirroring, rotation and scaling.\n\nImproved the overlay display adapter\u0027s touch interactions.\n\nA big change here is that the display manager no longer relies\non a single-threaded model to maintain its synchronization\ninvariants.  Unfortunately we had to change this so as to play\nnice with the fact that the window manager wants to own\nthe surface flinger transaction around display and surface\nmanipulations.  As a result, the display manager has to be able\nto update displays from the context of any thread.\n\nIt would be nice to make this process more cooperative.\nThere are already several components competing to perform\nsurface flinger transactions including the window manager,\ndisplay manager, electron beam, overlay display window,\nand mouse pointer.  They are not manipulating the same surfaces\nbut they can collide with one another when they make global\nchanges to the displays.\n\nChange-Id: I04f448594241f2004f6f3d1a81ccd12c566bf296\n"
    },
    {
      "commit": "a492c3a7b2c18426fd0cb4d017eacbc368195dc5",
      "tree": "67744a8d91519d997cb761a697600041d74165fa",
      "parents": [
        "00453e7a0182b50cf01e65c97650b526284fe084"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 23 19:48:44 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 31 15:42:45 2012 -0700"
      },
      "message": "Initial draft of high-level multi-display APIs.\n\nThis patch introduces the ability to create a Context that\nis bound to a Display.  The context gets its configuration and\nmetrics from that display and is able to provide a WindowManager\nthat is bound to the display.\n\nTo make it easier to use, we also add a new kind of Dialog\ncalled a Presentation.  Presentation takes care of setting\nup the context as needed and watches for significant changes\nin the display configuration.  If the display is removed,\nthen the presentation simply dismisses itself.\n\nChange-Id: Idc54b4ec84b1ff91505cfb78910cf8cd09696d7d\n"
    },
    {
      "commit": "89bc8636c5aeedd2421ffa4f903e783d4a2a993c",
      "tree": "dd51914a8fc35d453537ab84161b5963f7cc21df",
      "parents": [
        "f4247c250dd0ce50c8fa4e59bad33d0ba9b68692",
        "780c491fb9905adb3782f34886bb23327ed8f456"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Aug 31 11:26:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 31 11:26:54 2012 -0700"
      },
      "message": "Merge \"Add an OnDismissListener to AutoCompleteTextView\" into jb-mr1-dev"
    },
    {
      "commit": "780c491fb9905adb3782f34886bb23327ed8f456",
      "tree": "9b7375cbc9beb1de4374d0dc573d102c7ab17ecb",
      "parents": [
        "f203aeef993b0f4ce65c9630d06bbd50a504e89f"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Aug 30 17:30:05 2012 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Aug 30 17:46:11 2012 -0700"
      },
      "message": "Add an OnDismissListener to AutoCompleteTextView\n\nBug 4551310\n\nChange-Id: I702301ad3360828ec6637b6c09789e00d9661271\n"
    },
    {
      "commit": "d1b5cfc94ae940f42be352e7ed98c21c973471b2",
      "tree": "17d17b61ad35f94a6a6db81432c271355c204c6b",
      "parents": [
        "0fa814d7e6d16e68fa715175cf3122b19fd9e59c"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Wed Aug 29 14:49:51 2012 -0700"
      },
      "committer": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Thu Aug 30 16:00:59 2012 -0700"
      },
      "message": "Notify verifiers that verification is complete\n\nSend the Intent.ACTION_PACKAGE_VERIFIED to all verifiers when\nverification is complete (either one verifier verified the package or a\ntimeout occurred). Details of what occurred is in a new extra,\nPackageManager.EXTRA_VERIFICATION_RESULT.\n\nBug: 7048930\nChange-Id: I4f9855a29b0eb6d77f469891402c69e2e8922945\n"
    },
    {
      "commit": "5ac72a29593ab9a20337a2225df52bdf4754be02",
      "tree": "dc5310e556b3662cb5f097b30e700a26d50a4db5",
      "parents": [
        "e217ee4d7a8223289a1af7363627c69956c46d41"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 29 18:32:08 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 30 14:33:22 2012 -0700"
      },
      "message": "Improve multi-user broadcasts.\n\nYou can now use ALL and CURRENT when sending broadcasts, to specify\nwhere the broadcast goes.\n\nSticky broadcasts are now correctly separated per user, and registered\nreceivers are filtered based on the requested target user.\n\nNew Context APIs for more kinds of sending broadcasts as users.\n\nUpdating a bunch of system code that sends broadcasts to explicitly\nspecify which user the broadcast goes to.\n\nMade a single version of the code for interpreting the requested\ntarget user ID that all entries to activity manager (start activity,\nsend broadcast, start service) use.\n\nChange-Id: Ie29f02dd5242ef8c8fa56c54593a315cd2574e1c\n"
    },
    {
      "commit": "451da77972a4eead1317929e3176a9aa2a2707e9",
      "tree": "d52fc16155d1d6853e62118a8e5f832421435a09",
      "parents": [
        "e671ccec0f4d0fc5fe11ffc9b3b40637e6d2ddda",
        "201501f11e2934f63f9692383ade0620c45febae"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Aug 30 10:30:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 30 10:30:28 2012 -0700"
      },
      "message": "Merge \"Add getter for animateFirstView property of ViewAnimator\" into jb-mr1-dev"
    },
    {
      "commit": "201501f11e2934f63f9692383ade0620c45febae",
      "tree": "940eded04901289894141b8ee8f76e650c345f86",
      "parents": [
        "71d7c3c628fbce04b8bdb60f127588ada00bae13"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Aug 30 09:51:08 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Aug 30 09:51:08 2012 -0700"
      },
      "message": "Add getter for animateFirstView property of ViewAnimator\n\nTooling for xml properties is easier/better if we can properly reflect the\nxml properties at the Java language API level as well. We had setters/getters\nfor the other properties of ViewAnimator, but only a setter for the\nanimateFirstView property.\n\nIssue #6104327 Inconsistency between XML API and Java API for widgets - ViewAnimator\n\nChange-Id: Iede7231fa433ce14f7a8299da4cedd4720370bc8\n"
    },
    {
      "commit": "bd6e1500aedc5461e832f69e76341bff0e55fa2b",
      "tree": "a7f6e0a3524872002f2904cc43d926166c3c4515",
      "parents": [
        "c53abc4d42a707caddf7ec9bb7d041125a09dbd7"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 28 03:27:37 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 29 15:34:17 2012 -0700"
      },
      "message": "Add initial multi-display support.\n\nSplit the DisplayManager into two parts.  One part is bound\nto a Context and takes care of Display compatibility and\ncaching Display objects on behalf of the Context.  The other\npart is global and takes care of communicating with the\nDisplayManagerService, handling callbacks, and caching\nDisplayInfo objects on behalf of the process.\n\nImplemented support for enumerating Displays and getting\ncallbacks when displays are added, removed or changed.\n\nElaborated the roles of DisplayManagerService, DisplayAdapter,\nand DisplayDevice.  We now support having multiple display\nadapters registered, each of which can register multiple display\ndevices and configure them dynamically.\n\nAdded an OverlayDisplayAdapter which is used to simulate\nsecondary displays by means of overlay windows.  Different\nconfigurations of overlays can be selected using a new\nsetting in the Developer Settings panel.  The overlays can\nbe repositioned and resized by the user for convenience.\n\nAt the moment, all displays are mirrors of display 0 and\nno display transformations are applied.  This will be improved\nin future patches.\n\nRefactored the way that the window manager creates its threads.\nThe OverlayDisplayAdapter needs to be able to use hardware\nacceleration so it must share the same UI thread as the Keyguard\nand window manager policy.  We now handle this explicitly as\npart of starting up the system server.  This puts us in a\nbetter position to consider how we might want to share (or not\nshare) Loopers among components.\n\nOverlay displays are disabled when in safe mode or in only-core\nmode to reduce the number of dependencies started in these modes.\n\nChange-Id: Ic2a661d5448dde01b095ab150697cb6791d69bb5\n"
    },
    {
      "commit": "2deaa3698d33d428b527329537440ab65ae8dced",
      "tree": "61269ae429f69cd0e3fcbce298bf2e229c1e5431",
      "parents": [
        "b1a1e5ca7d3a2a93d6741db40aeba1467a8631cb",
        "7e67151b912622f8a279ab1523a9bcf26ebaff3d"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Tue Aug 28 15:14:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 28 15:14:26 2012 -0700"
      },
      "message": "Merge \"Add permission checks for Verification API calls\" into jb-mr1-dev"
    },
    {
      "commit": "7e67151b912622f8a279ab1523a9bcf26ebaff3d",
      "tree": "04e046f659971b2c62115755be7265b8fe0b5521",
      "parents": [
        "ac137b3211818f9e72f9ffbaf541ad8a1ef27eb1"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Mon Aug 27 14:44:16 2012 -0700"
      },
      "committer": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Tue Aug 28 14:00:46 2012 -0700"
      },
      "message": "Add permission checks for Verification API calls\n\nEnsure that only applications with\nandroid.Manifest.permission.PACKAGE_VERIFICATION_AGENT can call application\nverification APIs, like PackageManager.verifyPendingInstall and\nPackageManager.extendVerificationTimeout\n\nBug: 7049083\nChange-Id: I5fc28b37e864d67cd319a1ed9d03a90dd15ad052\n"
    },
    {
      "commit": "97d28d92c9a42db71d1855286fdd122e6b19ecef",
      "tree": "d16ae193eb92da32c2db2e22f69847a8431ebe49",
      "parents": [
        "a3b63c001cfd04121708e2bd67af5c8eb855baa1",
        "82e6ee62b2be3c716c215e4ba72c8a12c58620fb"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Aug 28 12:34:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 28 12:34:22 2012 -0700"
      },
      "message": "Merge \"Unhide some CellSignalStrength methods.\" into jb-mr1-dev"
    },
    {
      "commit": "82e6ee62b2be3c716c215e4ba72c8a12c58620fb",
      "tree": "b1663786456859ff485057e3bf73564764c9b166",
      "parents": [
        "af18865486df1e23e2951983fb0d1d4bf17f4f32"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Aug 28 12:05:16 2012 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Aug 28 12:05:16 2012 -0700"
      },
      "message": "Unhide some CellSignalStrength methods.\n\nWhen submitting originally I\u0027d missed unhiding these methods.\n\nChange-Id: I627a5ea0c8c29b6ddfe5b1c49f9c0789d5e86456\n"
    },
    {
      "commit": "da6da0907b28d4704aabbdb1bbeb4300954670d1",
      "tree": "58a2b58cf777d02d0d89cc8f54b0ce5d29a9c5b2",
      "parents": [
        "10a0df8459d22b29fb9163071e8cbc2bb7194393"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Aug 16 12:49:23 2012 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Mon Aug 27 22:27:06 2012 -0700"
      },
      "message": "Captive portal handling\n\nWe now notify the user of a captive portal before switching to the network as default.\nThis allows background applications to continue to work until the user confirms he\nwants to sign in to the captive portal.\n\nAlso, moved out captive portal handling out of wifi as a seperate component.\n\nChange-Id: I7c7507481967e33a1afad0b4961688bd192f0d31\n"
    }
  ],
  "next": "dc7d8008eceb08850142fcd77a97404b4fbe688d"
}
