)]}'
{
  "log": [
    {
      "commit": "52c489cd63cca0361f374f7cb392018fabfa8bcc",
      "tree": "7e994b33b5203f2492c0e6eb39a9f139d061b0bf",
      "parents": [
        "7c8fd157da36b68529b08b820051ce775f84a9bf"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Mar 28 11:42:42 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Apr 05 14:03:36 2012 -0700"
      },
      "message": "Lockscreen settings per user\n\nMove all lockscreen related settings to LockSettingsService.\nLockPatternUtils uses this through IPC instead of Secure settings.\nMigrate old settings to new database managed by LockSettingsService.\nPasswords and patterns are stored in a new per-user location, except\n for the primary user, for backward compatibility.\nKeyguardViewMediator and LockPatternKeyguardView listen for changes\nto user and updates the lockscreen.\n\nSettings provider will look for Lock settings in the LockSettings\nservice now for the entries that used to be stored in Settings.\n\nChange-Id: I956cd5b95e2d9d45a6401af7e270e6a5aa2dcc98\n"
    },
    {
      "commit": "689b741abc93a3b44d7a39e9b138162bad330f23",
      "tree": "8d5e09964b44a0e7e6c72eea43018eff1377dcd0",
      "parents": [
        "271cb5c0d41910a20fe47283e401420635f5e423",
        "7d024d372431effc87168afdc7cbe387680c4935"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Apr 04 12:34:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 12:34:52 2012 -0700"
      },
      "message": "Merge \"Add initial framework for DNS service discovery\""
    },
    {
      "commit": "7d024d372431effc87168afdc7cbe387680c4935",
      "tree": "2e8a8389c8792db9cce4575e7d6da4d9a870b30d",
      "parents": [
        "26d4452a08813cdbb7280c475fe5527cdc9673a3"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Mar 22 17:01:39 2012 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Apr 04 12:24:56 2012 -0700"
      },
      "message": "Add initial framework for DNS service discovery\n\nChange-Id: I53c0b7ebfd75e520ebb7553612f1aa8413b6b79b\n"
    },
    {
      "commit": "c3a6cf79e3ba65342a2f992bc730257a1656e501",
      "tree": "a260a23b011b311ad7066ce88ef90737b49a266d",
      "parents": [
        "0048dc9d55db71cea9c140748fbdb8e1cfe79b44",
        "594316361d38d88b53c85bd5c8d58a92345e8187"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 04 12:00:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 12:00:48 2012 -0700"
      },
      "message": "Merge \"First separation of animation from AppWindowToken.\""
    },
    {
      "commit": "0048dc9d55db71cea9c140748fbdb8e1cfe79b44",
      "tree": "c08cfad39ad7e78aae49ec70601979091807ba7f",
      "parents": [
        "6153ddc8f14640ad9d0686bb692f21bbb2774dda",
        "d09cc4ba247e896cc95a57ed7a3247b55b1b68fc"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 04 11:58:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 11:58:50 2012 -0700"
      },
      "message": "Merge \"Move more items between layout and animate sides.\""
    },
    {
      "commit": "594316361d38d88b53c85bd5c8d58a92345e8187",
      "tree": "f2e5d69946a784301fb382ad0ded772b9c2b84d2",
      "parents": [
        "d09cc4ba247e896cc95a57ed7a3247b55b1b68fc"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 04 11:56:44 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 04 11:56:44 2012 -0700"
      },
      "message": "First separation of animation from AppWindowToken.\n\nNew class AppWindowAnimator pulls animation out of AppWindowToken.\n\nChange-Id: Ic1ccb6ec2bf091f1f901fe3c20cbeb242376ae6b\n"
    },
    {
      "commit": "d09cc4ba247e896cc95a57ed7a3247b55b1b68fc",
      "tree": "cee7c3eff09b78a9b1a37bc9d7921ac2a4c6548e",
      "parents": [
        "4a727e342134f409c2cf7cf2f77dbe9c15128337"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 04 10:23:31 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 04 10:23:31 2012 -0700"
      },
      "message": "Move more items between layout and animate sides.\n\n- Isolate DimAnimator animation from the layout side.\n- Isolate mWallpaperForceHidingChanged and mOrientationChangeComplete\n  from the animation side.\n- Eliminate a redundant setting of mOrientationChangeComplete to true.\n  It was already true at that point.\n- Synchronize changes to mWindows and mAppTokens on mAnimator. This is\n  a nop until we go to multiple threads.\n- Synchronize AppWindowToken.freezingScreen on mAnimator.\n- Modification to repeat layout debugging including temporary enabling\n  of spew on layout repeats.\n\nChange-Id: Ic8d82b1c197144aaf6957caa5f71e175288220f2\n"
    },
    {
      "commit": "69ccdbd78a6dbcf32d6f734d238e5eaaa606a85f",
      "tree": "1b31e196d9190d3208e5fa09adc60514650a1952",
      "parents": [
        "3e29718d34eba7c6c455fa6bb622856fe651876e",
        "bc52ca28148a9a8f2935c380d9e97d56a75be416"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Tue Apr 03 11:53:47 2012 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Tue Apr 03 11:53:47 2012 -0700"
      },
      "message": "Merge commit \u0027bc52ca2\u0027\n\nConflicts:\n\tservices/java/com/android/server/am/ActivityManagerService.java\n\nChange-Id: I6da33a191a4ac13d08d8350a432b205e3dff85da\n"
    },
    {
      "commit": "15001eafa290e70b29a487ec196d99bf284fa103",
      "tree": "d1ece2413cff4b52ec0b51730208695ac369b26a",
      "parents": [
        "4a727e342134f409c2cf7cf2f77dbe9c15128337",
        "0dedffd656efb74a998bf697192720c93c48994d"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Apr 03 09:59:55 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 09:59:55 2012 -0700"
      },
      "message": "Merge \"Dump the uid of a notification, for debugging.\""
    },
    {
      "commit": "191310b7d367b491496de85dce5e286ebfdc4c73",
      "tree": "ac5c9be3a4fd8cf6fba9fe0eef0d862e0568ba83",
      "parents": [
        "8d56b0e1d24f7392314df4be6503af395a843696",
        "34db3d65d6e1489f06fe9ec18a897bba3fa9c4d3"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Apr 02 16:46:26 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 16:46:26 2012 -0700"
      },
      "message": "Merge \"Fix a regression in activity manager regarding killing stopped processes.\""
    },
    {
      "commit": "34db3d65d6e1489f06fe9ec18a897bba3fa9c4d3",
      "tree": "495282c02dce783081a8a139ead1336b0f2d0730",
      "parents": [
        "58a40a3e92f8a53ac1068f0839dec4a1707fa6fb"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Apr 02 16:35:19 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Apr 02 16:35:19 2012 -0700"
      },
      "message": "Fix a regression in activity manager regarding killing stopped processes.\n\nBug: 6275175\nChange-Id: Ib1fa80cba9d21799f36fec999899e54a0fe8da51\n"
    },
    {
      "commit": "1d6013357847983180a317e2acaf807bde8b7ea7",
      "tree": "d63dfdc7b7739835e79fc46d9f6d7a73ab0726c5",
      "parents": [
        "ea7ff4d2fe58505ec66c0e994ac1e03561b2b836",
        "749a7bb28b2aff7a77a8c7dce01e086c2bd82c6b"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 13:57:42 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 13:57:42 2012 -0700"
      },
      "message": "Merge \"Refactor to convert four state booleans to int.\""
    },
    {
      "commit": "749a7bb28b2aff7a77a8c7dce01e086c2bd82c6b",
      "tree": "802ed222902653a617c5e59c482595cf31d5630a",
      "parents": [
        "48ba1e7f530dab01bd2e733b6466246380720a92"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 13:49:53 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 13:49:53 2012 -0700"
      },
      "message": "Refactor to convert four state booleans to int.\n\nReplace four booleans (mDrawPending, mCommitDrawPending, mReadyToShow\nand mHasDrawn) with a single int that can take on the four states.\n\nMove mLastHidden from WindowState to WindowStateAnimator.\n\nChange-Id: Ieff319dfa19123bf5a6cdc98e9ab28fd432b8153\n"
    },
    {
      "commit": "ea7ff4d2fe58505ec66c0e994ac1e03561b2b836",
      "tree": "f1b1786eaac33cb845518d41c52a9b00c16d8d05",
      "parents": [
        "5d724f50d4d3907c4742dadd666f5355f046b5b1",
        "48ba1e7f530dab01bd2e733b6466246380720a92"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 13:24:55 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 13:24:55 2012 -0700"
      },
      "message": "Merge \"Defer a couple of Surface actions for WSAnimator.\""
    },
    {
      "commit": "48ba1e7f530dab01bd2e733b6466246380720a92",
      "tree": "bb79ee4b9fa80b9f9a8af5ec6818ae6456976d67",
      "parents": [
        "c8bc97e53044cd62c0e023fdc441fd13127d0283"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 13:18:16 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 13:18:16 2012 -0700"
      },
      "message": "Defer a couple of Surface actions for WSAnimator.\n\nPerform the set-transparent-region-hint operation outside of the\nWindowManagerService loop. This is to isolate the Surface operation\nfrom the WindowManagerService inner loop.\n\nSimilarly, defer the setWallpaperOffset call so it\u0027s animation is not\ncoupled to the WindowManagerService inner loop.\n\nNote that both operations are still being done on the\nWindowManagerService thread.\n\nChange-Id: I97f030b2a9b7cffe91c77342a299bfac6e59e9f8\n"
    },
    {
      "commit": "5d724f50d4d3907c4742dadd666f5355f046b5b1",
      "tree": "c107438bb6ca1997d3e5a392ac9834128d9ac1ff",
      "parents": [
        "0cf7507c6f37b4c259f92cfff0221a45dce45bef",
        "c8bc97e53044cd62c0e023fdc441fd13127d0283"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 12:58:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 12:58:23 2012 -0700"
      },
      "message": "Merge \"Further isolate the Surface from WindowState.\""
    },
    {
      "commit": "c8bc97e53044cd62c0e023fdc441fd13127d0283",
      "tree": "9cf90df6164fbcad6c6644c4ce385fae9865db63",
      "parents": [
        "b76a5608ecd05360daf484fae33ef88df285e038"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 12:54:54 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 02 12:54:54 2012 -0700"
      },
      "message": "Further isolate the Surface from WindowState.\n\nReplace references to mWinAnimator.mSurface with new member\nmHasSurface.\n\nClean up odd looping structures.\n\nSimplify logging.\n\nChange-Id: I9cc52a657044220d7b92528928b11bb18a724aef\n"
    },
    {
      "commit": "e6c966caa3aff3099e6fb00caefa10387f57b9c3",
      "tree": "83cc40d420f132a1b1d22f3d6fc8d733c760643d",
      "parents": [
        "78b0d9faddd11b0d33fe5164bb83224ff89e4305",
        "a3fabff98590d26f0c362cb09dc378fece66215c"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Mon Apr 02 09:45:36 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 09:45:36 2012 -0700"
      },
      "message": "Merge \"Add frame counter to dumpGfxInfo\""
    },
    {
      "commit": "2c93efc9eb188532472edc9e0c3e1ab8121aa20d",
      "tree": "712292267f39b8a1785ec77ad400e6afa023d3ce",
      "parents": [
        "fbdff47add9d886f1fac70230f05d29b88890fc0"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon Apr 02 19:33:47 2012 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon Apr 02 19:54:28 2012 +0900"
      },
      "message": "Hide ongoing notification icon when the screen is locked.\n\nBug: 5858903\nChange-Id: Ibee9123f4a520e77f4baf8bdd3d75364ab451100\n"
    },
    {
      "commit": "61d6c8ca49d4a3d5bf4c961878a3f71145d75058",
      "tree": "dac339e3067c6e8cd20e759f1d1e5b0d402d05e4",
      "parents": [
        "96695f9ba04f85b24f906c59673e92f00f89adbe",
        "3a3a6cfd8ec12208ca75c0d0d871d19d76c34194"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 30 17:36:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 17:36:32 2012 -0700"
      },
      "message": "Merge \"Add new feature to let apps layout over status bar / system bar.\""
    },
    {
      "commit": "3a3a6cfd8ec12208ca75c0d0d871d19d76c34194",
      "tree": "58e93b1349c5594a8231ee2269d42248eaf55547",
      "parents": [
        "5eeee5e0bbf5aba0097a510b3e9dbb286b2b30cd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 26 10:24:04 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 30 15:22:04 2012 -0700"
      },
      "message": "Add new feature to let apps layout over status bar / system bar.\n\nThe main change is a few new flags you can supply to\nView.setSystemUiVisibility().  One is a new visibility mode,\nSYSTEM_UI_FLAG_FULLSCREEN, which is basically the same as\nthe global FLAG_FULLSCREEN option for windows, but driven as\npart of the system UI state.\n\nThere are also three new flags for telling the framework that you\nwould like to have your application\u0027s UI ignore screen\ndecorations -- SYSTEM_UI_FLAG_LAYOUT_NO_NAVIGATION for going\nbehind the navigation bar and SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN\nfor ignoring full screen decorations (that is the status bar).\n\nIn combination with this you can use SYSTEM_UI_FLAG_LAYOUT_STABLE\nto have the framework report consistent insets to your application.\n\nWhen using NO_NAVIGATION, when the user taps the screen we now\nalso automatically clear ONLY_CONTENT, so that we atomically show\nboth UI elements.  This should make it easy for apps like video\nplayers that want to move between fully full-screen and regular\nmodes.\n\nThe ActionBar has also been extended when in overlay mode so\nthat it will adjust the system window insets to also account\nfor its space, and allow it to be hidden using the new\nSYSTEM_UI_FLAG_FULLSCREEN.\n\nChange-Id: Ic8db1adec49a0f420bfe40c1d92eb21307856d0b\n"
    },
    {
      "commit": "4185012ad323847fb60d32224a642df629c0e06c",
      "tree": "0d65190070097b7ad4169473d1dc1d5e42b591ca",
      "parents": [
        "5eeee5e0bbf5aba0097a510b3e9dbb286b2b30cd",
        "a608b882327fbb393bde3854953cd322a6fea675"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 30 13:22:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 13:22:21 2012 -0700"
      },
      "message": "Merge \"Move variables into animation class.\""
    },
    {
      "commit": "a608b882327fbb393bde3854953cd322a6fea675",
      "tree": "32f957f0baae3b13a76fcbab3e7b23e4198735a6",
      "parents": [
        "d87946ba48b62a6a83fd971ef7c4c419407db836"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 30 13:03:49 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 30 13:19:45 2012 -0700"
      },
      "message": "Move variables into animation class.\n\nMoved drawPending and commitDrawPending and associated methods from\nWindowState to WindowStateAnimator.\n\nCreated mechanism for passing results from WindowAnimator to\nWindowManagerService. Initial results passed are mUpdateRotation and\nmWallpaperMayChange.\n\nChange-Id: Ib03d28f921580ac9426ea9233bea6eafc9ea964c\n"
    },
    {
      "commit": "0dedffd656efb74a998bf697192720c93c48994d",
      "tree": "f4f3ed7be5af62166d6a49c0266d06a230884ea8",
      "parents": [
        "58a40a3e92f8a53ac1068f0839dec4a1707fa6fb"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Mar 30 10:47:23 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Mar 30 10:47:23 2012 -0700"
      },
      "message": "Dump the uid of a notification, for debugging.\n\nUseful for multiuser testing.\n\nChange-Id: I4aac8eda9b2f9c7ada07bd6a040260beb1acce87\n"
    },
    {
      "commit": "a3fabff98590d26f0c362cb09dc378fece66215c",
      "tree": "06574f65dd864672e7f80816db5b5a826a58624e",
      "parents": [
        "f9c1f9935b349fe1a3f27be4462026dd212f8b78"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Wed Mar 28 17:22:29 2012 +0200"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Fri Mar 30 05:06:55 2012 -0700"
      },
      "message": "Add frame counter to dumpGfxInfo\n\nChange-Id: I016f706e32cbdbce014795d8fc537b15c389dc7a\n"
    },
    {
      "commit": "50c69b5d8ae4bc973e53cbe3b58b0eb0299e25c8",
      "tree": "604ed9cea02d2120bc49e995c3427123216bd96a",
      "parents": [
        "6ef1eedac77977a4979a293499767e17ed3a4e03",
        "7f2668c8469934ce83a5647977f6e74ab782cf07"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Fri Mar 30 05:02:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 05:02:57 2012 -0700"
      },
      "message": "Merge \"Preload recents on phones with hard nav keys\""
    },
    {
      "commit": "15d5a964fd120766d049fddfc051d10eef5e440d",
      "tree": "4edf64e3556ecc9c164083bbd6682860893547a4",
      "parents": [
        "f64bf84eeb8f7b63efa322a73a5279bd3c297784",
        "d87946ba48b62a6a83fd971ef7c4c419407db836"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 29 18:03:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 18:03:32 2012 -0700"
      },
      "message": "Merge \"Remove obsolete variable masking valid one.\""
    },
    {
      "commit": "d87946ba48b62a6a83fd971ef7c4c419407db836",
      "tree": "ff03729c7e9364af1911f726c1fbf82cded90ea0",
      "parents": [
        "1505ce29cfa62665cc645c319ecc7c288eb078cc"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 29 18:00:19 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 29 18:00:19 2012 -0700"
      },
      "message": "Remove obsolete variable masking valid one.\n\nThe mUpdateRotation variable was still in the WindowManagerService\nmInnerFields object. This was masking the true mUpdateRotation found in\nWindowAnimator.\n\nFixes Bug 6240025.\n\nChange-Id: I6531002f870f30d22e19ba9af5cac86e1c7b9bcb\n"
    },
    {
      "commit": "bc52ca28148a9a8f2935c380d9e97d56a75be416",
      "tree": "d108eb324db390897b736225dad2140f8f43eb6f",
      "parents": [
        "c7e56eff1b48b0b6e871bdd12027b6b3e80345de"
      ],
      "author": {
        "name": "Justin Koh",
        "email": "justinkoh@google.com",
        "time": "Thu Mar 29 15:11:44 2012 -0700"
      },
      "committer": {
        "name": "Justin Koh",
        "email": "justinkoh@google.com",
        "time": "Thu Mar 29 15:37:11 2012 -0700"
      },
      "message": "Stop ANR dialogs from appearing when ActivityManager dialogs should not be shown\n\nStop ANR dialogs from appearing on devices where the ActivityManager dialogs\nshould not be shown. Instead, kill the process. This is preferable because the\nuser can\u0027t actually do anything on the device.\n\nTESTED \u003d runs on device with that config, simulated ANR using test app.\n\nChange-Id: I6267000afd12ef929f0c625220184c6ab0139552\n"
    },
    {
      "commit": "a08f3e866a46c990e786defa95013ee0313b0887",
      "tree": "12cdc8abf60c856d60eec99dda5bab3e65aebfd0",
      "parents": [
        "e32a4ac8d39b96d965acccd1d3e9ef111c4cfa37",
        "ebb2d8d708c5c58c79ae88ac2bd10450a856f702"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 29 15:12:33 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 15:12:33 2012 -0700"
      },
      "message": "Merge \"Enable vsync traversals by default.\""
    },
    {
      "commit": "ebb2d8d708c5c58c79ae88ac2bd10450a856f702",
      "tree": "7ea7f937f0a4b172ade6a5d310041fe5b6893672",
      "parents": [
        "70825161b5bf51ed48319e142751a9c88b104994"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Mar 23 17:14:34 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 29 13:10:55 2012 -0700"
      },
      "message": "Enable vsync traversals by default.\n\nImproved how the various callbacks are managed and sequenced\nto reduce code duplication.\n\nAdded a heuristic to avoid postponing traversals until\nthe next vsync frame if we did not actually do any drawing during\nthe previous frame.  This helps in the very common case where\ndrawing occurs in response to input.\n\nChange-Id: I277d9eeaf50408f8745a3cfd181db1d140770658\n"
    },
    {
      "commit": "c2f9be0b7fe14258e01d73f6bc43dd94c3e711d4",
      "tree": "475c8b1a46651f067b2007a109ada0550fe1591b",
      "parents": [
        "e7ae2505405cf30d9d3140278d5b9a2604d866df"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 27 17:32:29 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 29 11:31:12 2012 -0700"
      },
      "message": "Move Surface operations out of WindowState.\n\nMigrated the bulk of Surface operations from WindowState to\nWindowStateAnimator. There remain a multitude of cross-referencing\nbetween the two classes and most of the other classes in the wm\npackage.\n\nChange-Id: I4bfdfb84be31341371f3ef311aca8fc6a4966692\n"
    },
    {
      "commit": "e7ae2505405cf30d9d3140278d5b9a2604d866df",
      "tree": "c30902fd0192091de980ec02112a634b565c43ea",
      "parents": [
        "54e1553df69350130df5e4518abf14a9a64931bb"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Mar 26 17:11:19 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 29 11:31:11 2012 -0700"
      },
      "message": "Move wallpaper animations int WindowAnimator.\n\nMore refactoring. This time wallpaper animations were broken up from\nWindowManagerService and the layout piece kept there while the\nanimation piece was moved into WindwoAnimator.\n\nAlso, applyAnimationLocked and applyEnterAnimationLocked were moved\nfrom WindowManagerService to WindowState.\n\nChange-Id: I05935023702ce05fdfdc804342ec14f719cdfea4\n"
    },
    {
      "commit": "7f2668c8469934ce83a5647977f6e74ab782cf07",
      "tree": "5333c585593c89592aa0fbc48b9adeb8c72883ae",
      "parents": [
        "f9c1f9935b349fe1a3f27be4462026dd212f8b78"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Tue Mar 27 07:49:52 2012 -0700"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Thu Mar 29 06:28:42 2012 -0700"
      },
      "message": "Preload recents on phones with hard nav keys\n\nAlso refactor recents code across Phone/Tablet\n\nChange-Id: Id557c5cb0f7d9378f81c40b20511a5d98bf4078e"
    },
    {
      "commit": "0833082c8eb1d9a1473bb07232eb514974b87e2c",
      "tree": "e76e8957e03043e31328fc56502a5ed8ab80c9ad",
      "parents": [
        "970de33c8d4e234f65aaf2088531ac4b526be43a",
        "49a2ad1f404622803faba0bc5937b8a39aba02b3"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Mar 29 06:09:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 06:09:13 2012 -0700"
      },
      "message": "Merge \"Stop showing ADB and MTP/PTP/USB notifications at the top.\""
    },
    {
      "commit": "0184ce92959ae5ba5a1dee286573162c32152c75",
      "tree": "d452ce4d26824ead0e4491240ea1e15432553adc",
      "parents": [
        "c96ebd858eccb07976f5d5e9a884958661a188ab"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Mar 28 22:41:41 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Mar 28 22:41:41 2012 -0700"
      },
      "message": "Undo a previous change that\u0027s causing multi-user issues\n\nSurgical hack for getting Settings to run multiple instances without\ncausing other system services/providers from doing the same.\n\nChange-Id: Ic5dab61976a04c3012235299ba55edfcd8273dbb\n"
    },
    {
      "commit": "49a2ad1f404622803faba0bc5937b8a39aba02b3",
      "tree": "48d99801f9ad2d81d80feb5ed4541925d5cfb321",
      "parents": [
        "f3b7343246bf20a8024853abe9c8eeef767d26da"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Mar 28 15:46:39 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Mar 29 00:42:16 2012 -0400"
      },
      "message": "Stop showing ADB and MTP/PTP/USB notifications at the top.\n\nTwo parts to this:\n1. Stop treating FLAG_ONGOING_EVENT notifications specially\n   (in particular, ordering them at the top of the panel).\n2. Set the priority bits on the system UI notifications\n   appropriately (low).\n\nChange-Id: I3bde7e573654c5aad5e1c5d29e6a21ba94edcc5b\n"
    },
    {
      "commit": "79eeae4d69089693ac2d96b19a79767908f781f2",
      "tree": "8ac73a9df6d78d4f9b9468eafd66f964e6203dcd",
      "parents": [
        "6b367927f926453e2b94e0861dbfdee0ec7eae5a",
        "52f1d752f90579c9b57e3350393a029cf72138d0"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Mar 28 18:47:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 28 18:47:52 2012 -0700"
      },
      "message": "Merge \"Show the current user in power menu\""
    },
    {
      "commit": "52f1d752f90579c9b57e3350393a029cf72138d0",
      "tree": "8f8b5efabd4fea83c34b754cc0fd99a7580dfbac",
      "parents": [
        "59075643acedd38e324746083e2c59f69c0b9e56"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Mar 28 18:19:29 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Mar 28 18:19:29 2012 -0700"
      },
      "message": "Show the current user in power menu\n\nShows a little indicator next to the current user in the power menu\nwhen multi-user is enabled.\n\nFixed a bug where Settings was sometimes being launched in the wrong\nprocess when there are 2 instances running.\n\nChange-Id: Iaf2a00f6d1871fd2a88d8982439e445423bb2896\n"
    },
    {
      "commit": "8a34718d844ec7abefa7d0736c7d1a37ff658f61",
      "tree": "7ea5bbbedf2ccf90e4abe2fa216d9c35205411b4",
      "parents": [
        "a00377682123de4d55927f097feffe885330451d",
        "262f766ac8bd330008e1f0a61c1a37c64108b17c"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Mar 28 14:12:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 28 14:12:11 2012 -0700"
      },
      "message": "Merge \"Control suspend optimizations from framework\""
    },
    {
      "commit": "3df92c50febef4d5f1f55ab135c32006a123eeae",
      "tree": "e8e4715c06d1b54e80089e77e903945a176282bb",
      "parents": [
        "65dd3949d3a48268ff98e1d15a339e758d765acb",
        "a3d55342be7b4b209b5d794f4bae38ec78c48c3d"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 27 16:44:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 16:44:28 2012 -0700"
      },
      "message": "Merge \"Fix uninstallation tracking in the Backup Manager\""
    },
    {
      "commit": "a3d55342be7b4b209b5d794f4bae38ec78c48c3d",
      "tree": "742e62704d050159cfce4c7e5295bda60fb5e65a",
      "parents": [
        "b3e2e24f789d41d6c38b8ad4c252cf9f6e2122d8"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 27 13:16:18 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 27 16:29:35 2012 -0700"
      },
      "message": "Fix uninstallation tracking in the Backup Manager\n\nThis never worked properly; now it does.  We also no longer\ndo a redundant pair of remove/add operations when a package is\nupdated.\n\nBonus memory savings: we were keeping sets of ApplicationInfo\nobjects as part of the ongoing bookkeeping, but those were no longer\nbeing used for anything other than the package names.  That\u0027s been\ntossed out now and only the name strings are now used; hooray for\nmemory savings!\n\nChange-Id: I4c6e592a1680e28550bcb4f76789260ded22280d\n"
    },
    {
      "commit": "8b5bce8d9060c1b68b5605da8f6978d8fb5ea1d3",
      "tree": "8d55688177077766d695140c3bce18e2c38720c8",
      "parents": [
        "79763f3ce7495dfb3866989a05b64a5eeae50860",
        "135936072b24b090fb63940aea41b408d855a4f3"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Mar 27 11:24:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 11:24:54 2012 -0700"
      },
      "message": "Merge \"User management and switching\""
    },
    {
      "commit": "135936072b24b090fb63940aea41b408d855a4f3",
      "tree": "c10e6a7642df4246937bb6fbd7277b642daf3eee",
      "parents": [
        "0c44525a4888de321c9497204d59c8515f828499"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 22 16:16:17 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Mar 27 11:23:01 2012 -0700"
      },
      "message": "User management and switching\n\nBroadcast intents that get sent out when users are added/removed/switched.\n\nMore work on generating user-specific information in package manager queries.\nAPIs to update user name and query a user by id.\nRemoved Package.mSetStopped and mSetEnabled, since they\u0027re not user specific.\n\nUser removal:\n- Cleanup ActivityManager, PackageManager, WallpaperManager, AppWidgetService\n  and AccountManager.\n- Shutdown processes belonging to the user.\n\nDon\u0027t show vibrate option in long-press power if there\u0027s no vibrator.\n\nLock the screen when switching users, to force unlocking.\n\nChange-Id: Ib23a721cb75285eef5fd6ba8c7272462764038fa\n"
    },
    {
      "commit": "79763f3ce7495dfb3866989a05b64a5eeae50860",
      "tree": "4022231327368cea8e159520ac8c40efc6d5a5d9",
      "parents": [
        "40bd578db80c639c5b715cf99d0f6c3b1b9930e9",
        "857d6c27f28066769ead37c4e88e88a5a321bc5f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 27 10:54:35 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 10:54:35 2012 -0700"
      },
      "message": "Merge \"Fixed headset detection broken on stingray\""
    },
    {
      "commit": "262f766ac8bd330008e1f0a61c1a37c64108b17c",
      "tree": "0b35aa3ce2cbf593884b5f4d3c2ef3d63f745a58",
      "parents": [
        "8296628ed89d98a76a904cbca53ffeb62db8bbda"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Mon Mar 26 23:48:53 2012 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Mon Mar 26 23:48:53 2012 -0700"
      },
      "message": "Control suspend optimizations from framework\n\nThe suspend optimizations handling in the driver is being removed.\nThe framework will hence forth control when these optimizations occur -\nwe do this at screen off and hold a short wakelock to ensure this.\n\nWe also remove the use of the now defunct setsuspendopt command and\nhandle the high perf locking with the new suspend mode command.\n\nChange-Id: Ia12e38befb2c4f85cad6612bc8f807805bd0dae1\n"
    },
    {
      "commit": "b3cbd0b4d827577b3b8ad34106779c67a48701dd",
      "tree": "36003bfa78a6caa291e435a70e15f6cba5c2a494",
      "parents": [
        "628e2345ccca4f5c6572ebaa6edf727a42095937",
        "a2c77053b8dfa5f06bdd927bdbab4df2d00bb4e2"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Mar 26 17:27:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 17:27:16 2012 -0700"
      },
      "message": "Merge \"Refactor animation out of WindowState.\""
    },
    {
      "commit": "a2c77053b8dfa5f06bdd927bdbab4df2d00bb4e2",
      "tree": "b051b37794f261f98c3c885d0aab7c96f8b7e452",
      "parents": [
        "e300d828282645759abfbc5725c5ccc448e8c053"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Mar 26 12:14:43 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Mar 26 12:14:43 2012 -0700"
      },
      "message": "Refactor animation out of WindowState.\n\nRemove the animation stepping from WindowState and move it into a new\nclass, WindowStateAnimator. Update all references to moved variables\nin related files.\n\nChange-Id: I7540d8f897b370c73975f3ffe450140861cb0cd1\n"
    },
    {
      "commit": "dcbe048f4df9735c8d22f5a801c582cadcf35539",
      "tree": "2702d2f6a8589faba0598f38dd1073140ea31226",
      "parents": [
        "a561965842d0737d0781dc03b72d88802025cd1c",
        "4accb6a88bcd8521db1cd7cf438abd292e38741e"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Mon Mar 26 11:29:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 11:29:09 2012 -0700"
      },
      "message": "Merge \"Fix bug: don\u0027t show system bar in app thumbnails\""
    },
    {
      "commit": "eba00ce996d6646f558f25890f0a551de8e7ecf7",
      "tree": "d22e8a9962db04e90d3018990dfa1c70c11f2ae7",
      "parents": [
        "a026b48972316d05a75b6dde883be39b1e046891",
        "69dc66e91bcf1d982ae23b7c67cf82d6dd0e8056"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 26 11:12:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 11:12:28 2012 -0700"
      },
      "message": "Merge \"Okay now let\u0027s really turn it off.\""
    },
    {
      "commit": "69dc66e91bcf1d982ae23b7c67cf82d6dd0e8056",
      "tree": "4e5f780ebe704c26d7bc0844e6a9d54683addbc6",
      "parents": [
        "551d0b1f2ae3b4747ff38abbf8efa904e14fd368"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 26 10:50:54 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 26 10:50:54 2012 -0700"
      },
      "message": "Okay now let\u0027s really turn it off.\n\nChange-Id: Idda3c13339a6a29a300555d31e67219c9af4ae68\n"
    },
    {
      "commit": "a026b48972316d05a75b6dde883be39b1e046891",
      "tree": "f36a4c04440b47f303668b2d2633db49a53449c3",
      "parents": [
        "e300d828282645759abfbc5725c5ccc448e8c053",
        "551d0b1f2ae3b4747ff38abbf8efa904e14fd368"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 26 10:40:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 10:40:50 2012 -0700"
      },
      "message": "Merge \"Turn off \"too slow\" logs.\""
    },
    {
      "commit": "551d0b1f2ae3b4747ff38abbf8efa904e14fd368",
      "tree": "fb59c1fd7e437736e403fcea71eed0e18168679b",
      "parents": [
        "7cf4640e812a86451d17514f01bb7ffa5e56c33b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 26 10:25:59 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 26 10:25:59 2012 -0700"
      },
      "message": "Turn off \"too slow\" logs.\n\nChange-Id: I6ec306ca1c55226269c4644a869a984c4fa00f0d\n"
    },
    {
      "commit": "4accb6a88bcd8521db1cd7cf438abd292e38741e",
      "tree": "c6fd410fc6d859efa13cc86c582e719d91f666ef",
      "parents": [
        "c9f67764a856544446d44a3b377081f7fde3966c"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Mon Mar 26 09:18:46 2012 -0700"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Mon Mar 26 09:42:35 2012 -0700"
      },
      "message": "Fix bug: don\u0027t show system bar in app thumbnails\n\nBug: 5953608\nChange-Id: Ib730638fe130f287ff446db0c6cd42efc5746c5c\n"
    },
    {
      "commit": "c9f67764a856544446d44a3b377081f7fde3966c",
      "tree": "c26bab4c5a08c62e1ae26364cbbc9ac5b1e28e59",
      "parents": [
        "83e675f5ecf9f5615f3179ac102176faa3ae2596",
        "cf8cbbe77447d9cca28e789c5ec4e714694ab37d"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun Mar 25 22:01:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Mar 25 22:01:18 2012 -0700"
      },
      "message": "Merge \"Skip layout if performShow fails.\""
    },
    {
      "commit": "cf8cbbe77447d9cca28e789c5ec4e714694ab37d",
      "tree": "e9fc2869f14129ab391caaea75ab6d1f179b52d9",
      "parents": [
        "2cd24ecf61e374d8b9feafec78ccefb5d3ae647e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun Mar 25 21:54:36 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun Mar 25 21:54:36 2012 -0700"
      },
      "message": "Skip layout if performShow fails.\n\nIn cases where a Surface does not go from hidden to shown, do not set\nthe perform layout flag. This keeps us out of repeated passes through\nthe layout code.\n\nFixes bug 6222487.\n\nChange-Id: I22601bef5733d2f996a8cbdd50d6b89517bc3122\n"
    },
    {
      "commit": "a6deda436baf0df70438b0d9d795bb420b120114",
      "tree": "a7fdb17da680a7a5e3720f6273394be78a684005",
      "parents": [
        "0c44525a4888de321c9497204d59c8515f828499",
        "0abf6a001461a4c2ea31ddc44a60b003b4e0554d"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 17:52:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 17:52:25 2012 -0700"
      },
      "message": "Merge \"Don\u0027t crash when wiping backup data redundantly in the local transport\""
    },
    {
      "commit": "0abf6a001461a4c2ea31ddc44a60b003b4e0554d",
      "tree": "5abf436d6a7b166f9084d60482ca933ca8716d6f",
      "parents": [
        "243806cfeb72e46b39994b2ec3b0908fc7fcc973"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 17:45:15 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 17:47:58 2012 -0700"
      },
      "message": "Don\u0027t crash when wiping backup data redundantly in the local transport\n\nPreviously, if using the \"local\" debugging transport:\n\n    adb shell bmgr wipe com.android.browser\n    adb shell bmgr wipe com.android.browser\n\n... would bring down the runtime.  This no longer happens.  The fix\ncovers two aspects of the situation:  1. the local transport no longer\nblows up in this use case, and 2. the backup manager itself now catches\nblowups on the part of the transport, and tidies up after them.\n\nBug 6205185\n\nChange-Id: Ieb9b8827a62523148ad5a0ec15b05a954d198b3d\n"
    },
    {
      "commit": "857d6c27f28066769ead37c4e88e88a5a321bc5f",
      "tree": "64508293697b896693dba3e50687c1af825b9e97",
      "parents": [
        "2e842a58ebbc3a8a0599dfb0c19d7cda7ed21e5f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 23 17:24:07 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 23 17:32:37 2012 -0700"
      },
      "message": "Fixed headset detection broken on stingray\n\ncommit 5e64321e broke the headset detection on stingray.\nThis is because the name passed with the UEvent upon headset insertion/removal is\ndifferent from the dev path (h2w). It actually indicates the type of headset connected.\n\nThe fix consists in using the dev path received with the UEvent to find the corresponding\nentry in uEventInfo.\n\nChange-Id: I8481cfa17a7af3c8f5d83fc87d0f7c0d2c981098\n"
    },
    {
      "commit": "d5f2374e13a7bcefbc7252b814d128794f22af93",
      "tree": "0dcfde0da6a47ebf42cffe9c2c192fb6947630f6",
      "parents": [
        "9321ad6a7567a28116f15240688d474993539922",
        "bb1449b392b4fb14f17fa747c2261d7195405df3"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 23 16:20:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 16:20:47 2012 -0700"
      },
      "message": "Merge \"Reset layout needed at each animation step.\""
    },
    {
      "commit": "bb1449b392b4fb14f17fa747c2261d7195405df3",
      "tree": "4650ad11d3c2e94aa07979a55374d3eabd869467",
      "parents": [
        "764983d16925daeeba3f29fd1f844187655d1386"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 23 16:11:14 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 23 16:11:14 2012 -0700"
      },
      "message": "Reset layout needed at each animation step.\n\nThe member variable WindowAnimator.mPendingLayoutChanges was never\nbeing reset to 0. Consequently once it was set it was causing endless\ncalls to the layout method.\n\nFixes bug 6208114, 6220403, 6219546.\n\nFixed NPE in RecentsPanelView.\n\nChange-Id: Ie529b8f31e535543cb5ae0af9447146306b14eeb\n"
    },
    {
      "commit": "69f819b397e5e4b50b1931da6ef1caba0229640a",
      "tree": "20e9ae659dc16338fb20faab562a8dedf5b5ad0f",
      "parents": [
        "7cf4640e812a86451d17514f01bb7ffa5e56c33b",
        "b9a070189c2280a6356a8abb9483b517a41e14c3"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 23 15:21:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 15:21:00 2012 -0700"
      },
      "message": "Merge \"Include GIDs for unenforced permissions.\""
    },
    {
      "commit": "7cf4640e812a86451d17514f01bb7ffa5e56c33b",
      "tree": "e3e3ede8d6f902921bac5be358bae5bb59d0b2b2",
      "parents": [
        "3e93e433e28a617bb1c85958dde8d7fd11e327a5",
        "8078d8c8a282ca81344febe7256f63b1e805e3aa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 23 15:00:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 15:00:59 2012 -0700"
      },
      "message": "Merge \"Add new thumbnail animation.\""
    },
    {
      "commit": "8078d8c8a282ca81344febe7256f63b1e805e3aa",
      "tree": "6bfb8ab0a389c2ae344088017bd0ceee1e913660",
      "parents": [
        "3c4da3cad04ca878a4a37fcca3f3e2ff51d03fcb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 20 11:11:26 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 23 14:13:13 2012 -0700"
      },
      "message": "Add new thumbnail animation.\n\nUse it for recent tasks switching.\n\nNot perfect yet by far, but something.\n\nAlso fix issue #6186758: Twitter crashes after tapping on a tweet on JRM75D\n\nChange-Id: I49bf6c94aafde875ac652dedaf96d6c08cc9e7d2\n"
    },
    {
      "commit": "5b6f07b46122a0a1f057b28f1c07cbc74e592660",
      "tree": "1afef69430d6403f4c751d70d7b2fdb59f199855",
      "parents": [
        "0aa4713e47a53377720a043cf1b043ce31cb73da",
        "aa0c02d22182011b2add83b56ef96a303fa53ee0"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 14:01:40 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 14:01:40 2012 -0700"
      },
      "message": "Merge \"Deal gracefully with fatal exceptions during full backup\""
    },
    {
      "commit": "aa0c02d22182011b2add83b56ef96a303fa53ee0",
      "tree": "3de1eb26401798fd4584d7624590bd16c0927f74",
      "parents": [
        "54c546223cd550d2995ec6d956a8e7963311a0a6"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 13:56:34 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 13:56:34 2012 -0700"
      },
      "message": "Deal gracefully with fatal exceptions during full backup\n\nIn particular, if the low-level zip or crypto layers of the output\npipeline throw, the output becomes invalid at that point, but we\nwere not properly detecting this; we were missing the exception and\nthe runtime was going down.  Now we catch any such fatal exception\nand make sure to shut down the backup operation cleanly, leaving\nthe output at whatever point in its construction that it had\nachieved.\n\nBug 6131870\n\nChange-Id: If0fe0337857404b776f407a79d11dd88b8e60fd0\n"
    },
    {
      "commit": "9c2efb35e23eb875e8d901c39a94ce9dc14bf0dc",
      "tree": "b9253e68c2a48de250035577c30302b5df588c9c",
      "parents": [
        "54c546223cd550d2995ec6d956a8e7963311a0a6"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 13:00:05 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 23 13:00:05 2012 -0700"
      },
      "message": "Sanity-check backup agent name prior to instantiation\n\nFixes a crash that would occur if an app with a pending backup\npass in the pipeline was updated to remove its agent declaration\nfrom the manifest (or other more esoteric ways that a backup\npass was expected to run for an app without their own agent).\n\nBug 5776591\n\nChange-Id: I5a8bc8c12de6a2bfa82f5093fe3a15b754109ab1\n"
    },
    {
      "commit": "b9a070189c2280a6356a8abb9483b517a41e14c3",
      "tree": "765b97cec4325ef361196f0efbc5e911506028ac",
      "parents": [
        "cae04a29da1334aa160ac44f7430411c23cebd1b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 22 17:00:04 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 23 10:22:54 2012 -0700"
      },
      "message": "Include GIDs for unenforced permissions.\n\nWhen READ_EXTERNAL_STORAGE isn\u0027t enforced, grant its GID to all\nlaunched processes.  When changing enforcement, kill all processes\nbelow foreground adjustment, causing them to be relaunched with\nupdate GIDs.\n\nBug: 6131916\nChange-Id: I6d83efc937919f13a1a7d9caac902e572869406a\n"
    },
    {
      "commit": "54c546223cd550d2995ec6d956a8e7963311a0a6",
      "tree": "c379bd448ac2daf8e044644a7c58231603cc1214",
      "parents": [
        "8dde7e29fb514d4f3106766e23ca05d82bc2d7d4",
        "764983d16925daeeba3f29fd1f844187655d1386"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 22 17:15:17 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 17:15:17 2012 -0700"
      },
      "message": "Merge \"Separate animation into separate class.\""
    },
    {
      "commit": "764983d16925daeeba3f29fd1f844187655d1386",
      "tree": "47a0967bfd01667b746413cf338b8d3fb1203229",
      "parents": [
        "9a69fea81d43b79a6e4c2d808438b9e6690a7e4c"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 22 11:37:36 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Mar 22 16:46:01 2012 -0700"
      },
      "message": "Separate animation into separate class.\n\nIntroduction of the class WindowAnimator which takes care of all\nanimations stepping and Surface operations.\n\nChange-Id: I78f1c269fa57df0616c08adbe156e3059709ae48\n"
    },
    {
      "commit": "ced11a5bc4495eaa51a4d6675b2d4e296a130049",
      "tree": "ffdf68c388135cf4d66d606fdb36f45f9b92f716",
      "parents": [
        "1c8e0a074be475e653a7263688bd818120d17a45",
        "1b6989cdc212aec7579489a362f99b791abe7352"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Mar 22 15:16:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 15:16:03 2012 -0700"
      },
      "message": "Merge changes I35a76a27,I04bb7ad4,If38a1a10,Ice5be6e5,I009e443f,I968ddf90,I69d4e518,I09b1dfc9\n\n* changes:\n  Merge commit \u002774803dc\u0027\n  add config_bluetooth_default_profiles config var and use it to disable bt profiles\n  Do not allow Surface creation on machines without SurfaceFlinger We will fail later anyways, but this change makes it much easier to track down places where we are inadvertently doing operations that depend on the flinger.\n  fix setting only usb mode\n  Detect (at runtime) kernel support for the \"hdmi_audio\" switch.\n  Add a config resource to disable key-chord screenshotting\n  Do not assume that there is always a running activity (Necessary for headless devices)\n  Add batch volume adjust support to adjustMasterVolume() in AudioManager and AudioService.\n"
    },
    {
      "commit": "11c0ab9a0810a9007228db197acd27c274f0d08d",
      "tree": "d8ac8d44bc06691ab493b0fb003f4cdd9e2a2f5c",
      "parents": [
        "ad812a23df775062f0185076557e7f3fdfa57943",
        "86548c472afc3700969fafb42b7ce6aa6dae0005"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Mar 22 15:13:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 15:13:20 2012 -0700"
      },
      "message": "Merge \"ActivityManagerService: Disable app crashed dialog on headless builds\""
    },
    {
      "commit": "ad812a23df775062f0185076557e7f3fdfa57943",
      "tree": "d170b440d49fb188203bfe2d2b72f844d6b8a0f0",
      "parents": [
        "df78cd5ee959f57c35dd9d6ad0f6871c72438f3c",
        "483f3b06ea84440a082e21b68ec2c2e54046f5a6"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 22 15:11:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 15:11:51 2012 -0700"
      },
      "message": "Merge \"Package restrictions per user\""
    },
    {
      "commit": "dab2072365565b4892be7910b0cdb870e83689f6",
      "tree": "e0cc3dd8a9e3eeca5db66d417339bd03d7958861",
      "parents": [
        "5e64321ebfc0a3225bc4e4828d3c29d719db450a"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Mar 07 17:53:36 2012 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Mar 22 15:09:36 2012 -0700"
      },
      "message": "fix setting only usb mode\n\nIf you cleared the last usb mode it would fail (and so would setting\nit if you started with none). This fixes it to set and unset the\nlast property correctly.\n\nChange-Id: Ice5be6e57b6ca6b8c9241b0ac62071a3bc72606a\n"
    },
    {
      "commit": "5e64321ebfc0a3225bc4e4828d3c29d719db450a",
      "tree": "0bed823398c0bd79d23e6fdf45532189e6567a5e",
      "parents": [
        "e90585f89d550a61e3efd5050efdc5be2be494af"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Mar 05 16:01:26 2012 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Mar 22 15:09:29 2012 -0700"
      },
      "message": "Detect (at runtime) kernel support for the \"hdmi_audio\" switch.\n\nA new switch was introduced in AndroidAtHome to deal with a race\ncondition between the WiredAccessoryObserver and the HW composer HAL.\nWhen the new switch (\"hdmi_audio\") is present, we want to pay\nattention to it instead of paying attention to the old switch\n(\"hdmi\").  This change checks at startup for the presence or absence\nof the new switch and uses it if available, otherwise it falls back on\nclassic behavior.\n\nsee change ID I960cfc2f3e8df5342e7248a26fd313fdad2ca322 for the kernel\nside changes.\n\nsee bug 6023647 for a discussion of the issue.\n\nChange-Id: I009e443f25662e7beb233e892ca71034b05ebfc2\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "d87a9be444874d62fcfa70a9d48b7dc4f5f5948e",
      "tree": "5724c8b25990dd6541267d6dca309c3627f63231",
      "parents": [
        "6c798970ccb8759d1e613b57111daa8da0ab44c7"
      ],
      "author": {
        "name": "Kevin Hester-Chow",
        "email": "khester@google.com",
        "time": "Mon Mar 05 08:01:00 2012 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Mar 22 15:09:21 2012 -0700"
      },
      "message": "Do not assume that there is always a running activity\n(Necessary for headless devices)\n\nChange-Id: I69d4e518df99a02f2fbf19a9d86a693cea292f80\n"
    },
    {
      "commit": "86548c472afc3700969fafb42b7ce6aa6dae0005",
      "tree": "1485858b36f0df289c89607333e81ffe92896390",
      "parents": [
        "4355b001cb736d4aa312231ce129506a3c7f6808"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 13 17:21:46 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Mar 22 15:09:00 2012 -0700"
      },
      "message": "ActivityManagerService: Disable app crashed dialog on headless builds\n\nChange-Id: I78bf2cb2cd9f99db57f447b7bfaca80c4fefbd66\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "370f2dbc372116f986274ff2552b5ecfdce7d29a",
      "tree": "915d2c72d65d2b16f37fd48f1966484d23092307",
      "parents": [
        "bf30911bf1894506793fccea24deca2e9208b3b4",
        "8a8b581e669f6187b397f856a567a76ed8aba2c2"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 22 11:13:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 11:13:54 2012 -0700"
      },
      "message": "Merge \"Move network policy to per-appId (instead of UID).\""
    },
    {
      "commit": "8a8b581e669f6187b397f856a567a76ed8aba2c2",
      "tree": "9f917d1d3703c537728f42b35768e77a44f068c8",
      "parents": [
        "e5b2b644b1c48026cd3a58fb9267b708b774ae6a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Mar 21 18:13:36 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Mar 22 11:02:43 2012 -0700"
      },
      "message": "Move network policy to per-appId (instead of UID).\n\nTo support multi-user, store network policy per-appId and expand to\napply rules to all UserInfo on device.\n\nBug: 6140462\nChange-Id: Ic0866b4d41c8c60cc1c0a597f0de927b92b65b1e\n"
    },
    {
      "commit": "483f3b06ea84440a082e21b68ec2c2e54046f5a6",
      "tree": "cc0dff8ea3d133a4dc910bc1e90c85380cea2064",
      "parents": [
        "8fca15f1f2273fa429e58f783d0970251d0942e5"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Mar 13 16:08:00 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 22 10:08:24 2012 -0700"
      },
      "message": "Package restrictions per user\n\nPackages can be enabled/disabled per user.\nThis requires maintaining stopped/launched states and\nenabled / disabled components and packages per user.\n\nRefactored pm.Settings and PackageSettingsBase to keep\ntrack of states per user.\n\nMigrated the stopped-packages.xml to users/\u003cu\u003e/package-restrictions.xml\n\nChanged intent resolution to handle individual user restrictions.\nBunch of IPackageManager calls now have a userId argument.\nMake AppWidgetService handle removals of packages.\n\nAdded some tests for pm.Settings and PackageManager.\n\nChange-Id: Ia83b529e1df88dbcb3bd55ebfc952a6e9b20e861\n"
    },
    {
      "commit": "03273d00ce1d7b4ebde95994732dd80204ba7e68",
      "tree": "daa0a0f8d9474c847f9012f8664baf53030b5287",
      "parents": [
        "006f0e41abca961bade88908d7ef56ae63c429fb"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Mar 21 11:52:40 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Mar 21 11:52:40 2012 -0700"
      },
      "message": "Continue animations started from AppWindowToken.\n\nAnimations that were started from AppWindowToken.showAllWindowsLocked\nwere not setting mInnerFields.mAnimating and hence the animations were\nnot progressing. This resulted in popups such as menus and time/date\nsettings not showing up.\n\nFixes bug 6205076.\n\nChange-Id: I4daae5895e64182328671e282331f14dd5561d5e\n"
    },
    {
      "commit": "6d332c514805798a9a545999e7f0d6d83a6a35d1",
      "tree": "597742623a901b7189c9090099c866904a26d2ae",
      "parents": [
        "ad32461ec14593e57a5fb107f4796276656f2a23",
        "2fb98b147b58210604dfaf1482f635ce8d8a0575"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Mar 21 09:21:39 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 09:21:39 2012 -0700"
      },
      "message": "Merge \"Minor refactoring prior to major refactoring.\""
    },
    {
      "commit": "e5b2b644b1c48026cd3a58fb9267b708b774ae6a",
      "tree": "ac5274c5f00b1479283f17ea6122acb544579e03",
      "parents": [
        "829aaeea91686d918bc3ea7d86320395a25ec3f8",
        "948eef82546c15086d0b78ce18ee874aa5c634f7"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 18:00:29 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 18:00:29 2012 -0700"
      },
      "message": "Merge \"Remove unused android.net.Downloads.\""
    },
    {
      "commit": "948eef82546c15086d0b78ce18ee874aa5c634f7",
      "tree": "76eedd51d5a15dc52e1ac6104bbb6e7808a1e401",
      "parents": [
        "127d4deab1606527777160d4ace3b92baae8b67f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 17:44:42 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 17:58:27 2012 -0700"
      },
      "message": "Remove unused android.net.Downloads.\n\nIt\u0027s another set of constants that can be confused with those in\nandroid.provider.Downloads.\n\nChange-Id: I78ac058fa264d59a81f7655ab101c3fb2c8c17ff\n"
    },
    {
      "commit": "3a66cf3e86f351f0957188a4b874a3e65edfa40f",
      "tree": "890070eeaac0a72ffbabfbea92672979f7cb54e0",
      "parents": [
        "127d4deab1606527777160d4ace3b92baae8b67f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 17:00:01 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 17:45:23 2012 -0700"
      },
      "message": "Avoid data usage notifications in airplane mode.\n\nOnly for mobile networks.\n\nBug: 5995839\nChange-Id: I6a6dba8cfe98c8e72861f90665c3e41da6d9a474\n"
    },
    {
      "commit": "2fb98b147b58210604dfaf1482f635ce8d8a0575",
      "tree": "0c8f563852bc7f74a7264e88913ab8c4c0bebac6",
      "parents": [
        "d3ae220286c2f98ec7739d228a85a24987759506"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 20 17:24:00 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 20 17:24:00 2012 -0700"
      },
      "message": "Minor refactoring prior to major refactoring.\n\nRemoval of blur layer.\nDeferral of Surface actions in BlackFrame from ctor to first use.\nCombine common test into single method okToDisplay().\nRemove redundant logic in DimAnimator.\n\nChange-Id: I43af0415794a8f142803ce94d7e17539aafac67d\n"
    },
    {
      "commit": "481cb7ea386d110bd1d0c6e224d3989546344457",
      "tree": "eb0f43550ce4f97a99f5aaac08adf2613a80969b",
      "parents": [
        "f57bdf3a2b5b8833fc1ded877bbf6ed232205d1e",
        "837f9242ae2e8f5f380d0b30b8fffbc68494914f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 16:54:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 16:54:51 2012 -0700"
      },
      "message": "Merge \"Remember when NetworkPolicy was inferred.\""
    },
    {
      "commit": "837f9242ae2e8f5f380d0b30b8fffbc68494914f",
      "tree": "523e03187bc8cb24beec3fbb9310588159337af8",
      "parents": [
        "edc84ee8392afa0102f098168329db5bb43a6d4b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 16:52:20 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 20 16:52:20 2012 -0700"
      },
      "message": "Remember when NetworkPolicy was inferred.\n\nThis helps future-proof NPMS if we need to correct default policies\nafter an upgrade.\n\nChange-Id: I0ddfdeaf41757a46aeb867c91d495ccf981d544b\n"
    },
    {
      "commit": "d3ae220286c2f98ec7739d228a85a24987759506",
      "tree": "3220510effd842ba4edda36b3a58cbc7ca6d3a5e",
      "parents": [
        "0b83efb64ac6dcc1e59dc13367a623ed1e2dec71",
        "22ce1414a0073b5cddadf1da8475f6fb7b409e44"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 20 12:46:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 12:46:48 2012 -0700"
      },
      "message": "Merge \"Fix flickering when starting and ending apps.\""
    },
    {
      "commit": "22ce1414a0073b5cddadf1da8475f6fb7b409e44",
      "tree": "449cef06da5bbbc27ab00f4c8fdf8d099abb0c1b",
      "parents": [
        "f6b8f7b34f5fe94cd1d8753ec356b967293f1f9c"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 20 10:16:26 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Mar 20 10:16:26 2012 -0700"
      },
      "message": "Fix flickering when starting and ending apps.\n\nSurfaces were displaying animations in their entirety for a single\nframe before the animation kicked in. This caused a flash on the\nscreen. By setting the animation to invisible (alpha\u003d0) at their\nstart it makes no difference if they are displayed.\n\nFixed bug 6176540.\n\nRemoved redundant mDimAnimator.show call.\n\nChange-Id: I47c1b0d38273b011d9115822a8476671d6a050fc\n"
    },
    {
      "commit": "09f5aededa1568f59bbe014ce5199ebca35a93b8",
      "tree": "99ccbe34f133d94ff79a4a0f94b84d29ddd6a024",
      "parents": [
        "975e04c24494cf4515a61f3bcf6b25fb5f565f4f",
        "edc84ee8392afa0102f098168329db5bb43a6d4b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 19 19:24:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 19 19:24:04 2012 -0700"
      },
      "message": "Merge \"Selective enforcement of READ_EXTERNAL_STORAGE.\""
    },
    {
      "commit": "edc84ee8392afa0102f098168329db5bb43a6d4b",
      "tree": "73b87a485d53936cfd5c5c18f4f33b827ce8890d",
      "parents": [
        "80a6b33be276eb6c808fce13debb4bb7a489cdad"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 19 16:52:26 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 19 19:01:45 2012 -0700"
      },
      "message": "Selective enforcement of READ_EXTERNAL_STORAGE.\n\nStore enforcement state of specific permissions, allowing them to be\nselectively enforced. Currently supports READ_EXTERNAL_STORAGE, which\nby default isn\u0027t enforced, but enforcement can be enabled at runtime.\n\nBug: 6131916\nChange-Id: I4bcc215a2eb5e6507d6257b577311cbd13c77acf\n"
    },
    {
      "commit": "9ce685b934b36cc57631e10f7c1e3609e91e3f9c",
      "tree": "5ab0bc432f26889dcc2205e3e5c4c0ed11477424",
      "parents": [
        "179239bc6c2c7d09f226c6771735169d2bce98cd"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 15 16:27:14 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 19 18:37:57 2012 -0700"
      },
      "message": "Make immersive mode public \u0026 imply update locking\n\nActivity.setImmersive(boolean) / android:immersive\u003d\"bool\" are now public.\nIn addition, if the foreground activity is immersive then an update lock\nwill be held on its behalf.  This lets applications such as movie players\nsuppress the display of intrusive notifications, OTA-availability dialogs,\nand the like while they are displaying content that ought not to be\nrudely interrupted.\n\nThe update lock aspect of this mode is *advisory*, not binding -- the\nupdate mechanism is not actually constrained; it simply uses this information\nin deciding whether/when to prompt the user.  It\u0027s more a guideline than\na rule.\n\nBug 6154438\n\nChange-Id: Ibd3491fc437077f3fa0d9708ed91955121e8c877\n"
    },
    {
      "commit": "7a2195cdd33f27c79eda343defc1f7ccf59cc8ac",
      "tree": "a0964fae7ec6d7e39f3ed6a50d4092a1a3028f05",
      "parents": [
        "f6b8f7b34f5fe94cd1d8753ec356b967293f1f9c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 19 17:38:00 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 19 17:41:10 2012 -0700"
      },
      "message": "Start using the new activity options argument.\n\nNew class lets you make an options bundle defining a custom animation,\nas an alternative to Activity.overridePendingTransition().\n\nChange-Id: I8e209bf52398a98ab9f1bcafa1ec0a580dae57c0\n"
    },
    {
      "commit": "dea50f05e43b2ad6ea392d7ddfbfa691f6903734",
      "tree": "8194b7e0e4ba1df8340d9ca91a64f96a9bb8b1d7",
      "parents": [
        "06ba42d5fb2a5e6cf97772558bb6b1324eac5623",
        "d6b32b6178238361ffd1b428120942858de78428"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 18:29:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 18:29:16 2012 -0700"
      },
      "message": "Merge \"More work on rotation animation.\""
    },
    {
      "commit": "d6b32b6178238361ffd1b428120942858de78428",
      "tree": "5498320e12ef004bd3d92ed3d6c160f2d7ce8c13",
      "parents": [
        "4108fbc299bb0c02293ff53fa670308ed81607f7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 11:54:51 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 18:20:07 2012 -0700"
      },
      "message": "More work on rotation animation.\n\nChange-Id: Ib8206db98b68cb1e0b16e4c55d949e80ff31bd9f\n"
    },
    {
      "commit": "d87eb6c7c686182aaf0e7dd6facacb9e229f9684",
      "tree": "205ebc25b2cd0bd7197017b4a457d81f4140a63e",
      "parents": [
        "9e4fdfae11b921b57d5e12cbc1ad0fbc8daab41e",
        "0059d3508f3c5346d4ea07d4ada3e1827e4c8a01"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 16 15:35:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 15:35:21 2012 -0700"
      },
      "message": "Merge \"Fix black screen on app transition.\""
    },
    {
      "commit": "0059d3508f3c5346d4ea07d4ada3e1827e4c8a01",
      "tree": "50fd870181dc4391eb5014e382f2c83fc4d8f270",
      "parents": [
        "1dd3ed09e8623574ef21fd48354eaa46d1edd9ee"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 16 15:26:01 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Mar 16 15:26:01 2012 -0700"
      },
      "message": "Fix black screen on app transition.\n\nThe layer adjustment to an animating window upon completion was masking\nthe window behind the mWindowAnimationBackgroundSurface, a DimSurface.\nThe DimSurface was not being hidden because the step was happening too\nlate. Swapping the order of performAnimationsLocked and\nupdateWindowsAppsAndRotationAnimationsLocked fixes this ordering issue.\n\nFixes bug 6185920.\n\nChange-Id: I0ff64c019e821fa3a92505ac6351f2648897e592\n"
    },
    {
      "commit": "baad5d5f0de40c4b161aaf8bb87aee4e57784c50",
      "tree": "7b6f6bb875bf4285c0f383cd3d632618ecd25654",
      "parents": [
        "b070521ee1403788ee6acc4b1ed11e374192d40b",
        "29ba7e66804e91cbd05fed74893061b4971ec52b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 15:19:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 15:19:51 2012 -0700"
      },
      "message": "Merge \"resolved conflicts for merge of 354e0346 to master\""
    },
    {
      "commit": "29ba7e66804e91cbd05fed74893061b4971ec52b",
      "tree": "ca4939082344887f6879023a0a08801ab2092e3e",
      "parents": [
        "4108fbc299bb0c02293ff53fa670308ed81607f7",
        "354e034697d667fbab5d3f9af28704dca4ad7b12"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 15:03:36 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 15:03:36 2012 -0700"
      },
      "message": "resolved conflicts for merge of 354e0346 to master\n\nChange-Id: I432f5f43aa1e19c6a474e8656fe0e3715828e8af\n"
    }
  ],
  "next": "1dd3ed09e8623574ef21fd48354eaa46d1edd9ee"
}
