)]}'
{
  "log": [
    {
      "commit": "17150cf91be1478e367c2ef5e4f5baaa66b487d0",
      "tree": "b8e3d68f6a9fef0291cb2f60092ab6736002bb1d",
      "parents": [
        "38616ccc94b1e1a605ab43cc5c230d6acc729a15"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Wed May 30 20:05:44 2012 +0900"
      },
      "committer": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Wed May 30 20:36:52 2012 +0900"
      },
      "message": "Fix locale in TextServicesManagerService\n\nBug: 6542210\nChange-Id: I1670fac014beb834ec7c065ebf040d0ff3cf4161\n"
    },
    {
      "commit": "ae5811c71405878b09eace395ec2b28e54eeb427",
      "tree": "4e5a0839c56b109fd699751836348957540b8812",
      "parents": [
        "bb1b7cf66bc17165b656c2aaed8027f9e5992306",
        "6ae8d1821822296df0606c9cd1c46708cc21cb58"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 29 15:51:24 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 29 15:51:24 2012 -0700"
      },
      "message": "Merge \"Fix (mostly) issue #5109947: Race condition between retrieving a...\" into jb-dev"
    },
    {
      "commit": "82b3b1bce9665a68b32ab0d7393ea63425677f70",
      "tree": "f1a9ee99ecdea63861d3b77ac4e6bd3ec5c4bca6",
      "parents": [
        "817a243c3be0920cfc0707c260e51c746bd26e01",
        "00355d5a592533a3ecb0a5a74aef8e69dd16902a"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue May 29 15:28:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 29 15:28:00 2012 -0700"
      },
      "message": "Merge \"Make location providers upgradeable.\" into jb-dev"
    },
    {
      "commit": "de1ddd0f93fae6ba517d516993e7fb495424f574",
      "tree": "05b37c849ada29fb132dc5d3fedfdb50c7194bf1",
      "parents": [
        "a073e570789e5b49e8339af44516444b13db4428",
        "1d961d46d68eb3134e4bd6c3751f9730e9d32f17"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 29 13:53:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 29 13:53:06 2012 -0700"
      },
      "message": "Merge \"Better handle changing app transitions.\" into jb-dev"
    },
    {
      "commit": "6ae8d1821822296df0606c9cd1c46708cc21cb58",
      "tree": "eb4b17b255b1f0e78078923474afcaad67755f12",
      "parents": [
        "3dac02265e42bf176e26b83da430ce15d6fd06df"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 23 13:12:42 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 29 13:33:09 2012 -0700"
      },
      "message": "Fix (mostly) issue #5109947: Race condition between retrieving a...\n\n...content provider and updating its oom adj\n\nThis introduces the concept of an \"unstable\" reference on a content\nprovider.  When holding such a reference (and no normal stable ref),\nthe content provider dying will not cause the client process to be\nkilled.\n\nThis is used in ContentResolver.query(), .openAssetFileDescriptor(),\nand .openTypedAssetFileDescriptor() to first access the provider\nwith an unstable reference, and if at the point of calling into the\nprovider we find it is dead then acquiring a new stable reference\nand doing the operation again.  Thus if the provider process dies\nat any point until we get the result back, our own process will not\nbe killed and we can safely retry the operation.\n\nArguably there is still the potential for a race -- if somehow the\nprovider is killed way late by the OOM killer after the query or\nopen has returned -- but this should now be *extremely* unlikely.\nWe also continue to have the issue with the other calls, but these\nare much less critical, and the same model can\u0027t be used there (we\nwouldn\u0027t want to execute two insert operations for example).\n\nThe implementation of this required some significant changes to the\nunderlying plumbing of content providers, now keeping track of the\ntwo different reference counts, and managing them appropriately.  To\nfacilitate this, the activity manager now has a formal connection\nobject for a client reference on a content provider, which hands to\nthe application when opening the provider.\n\nThese changes have allowed a lot of the code to be cleaned up and\nsubtle issues closed.  For example, when a process is crashing, we\nnow have a much better idea of the state of content provider clients\n(olding a stable ref, unstable ref, or waiting for it to launch), so\nthat we can correctly handle each of these.\n\nThe client side code is also a fair amount cleaner, though in the\nfuture there is more than should be done.  In particular, the two\nProviderClientRecord and ProviderRefCount classes should be combined\ninto one, part of which is exposed to the ContentResolver internal\nAPI as a reference on a content provider with methods for updating\nreference counts and such.  Some day we\u0027ll do that.\n\nChange-Id: I87b10d1b67573ab899e09ca428f1b556fd669c8c\n"
    },
    {
      "commit": "1d961d46d68eb3134e4bd6c3751f9730e9d32f17",
      "tree": "cf7e519cb02ba8e05539f895e25d0be31665bf1b",
      "parents": [
        "6385ff511dd998f1fbb189621270e2c19577f66e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun May 27 12:02:11 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 29 13:00:25 2012 -0700"
      },
      "message": "Better handle changing app transitions.\n\nWhen we are in the middle of an app transition and need to change to a\nnew one we were not ending the old one in a clean state. Also,\nwallpapers were defaulting to the wrong animation in certain\nsituations.\n\nRemove \u0027:\u0027 style iterators.\n\nFixes bug 6486708.\n\nChange-Id: Ied17e8410486020295db380ff68df5dad08bc5cc\n"
    },
    {
      "commit": "1dee8974693fff55e276e0aed1202e43904bb944",
      "tree": "fd03263c1e4abddade9c5d732dc4ab5199077e54",
      "parents": [
        "3dac02265e42bf176e26b83da430ce15d6fd06df",
        "06a94f710d4ee6366ebfbd6666c5a58916511eef"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 29 11:45:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 29 11:45:16 2012 -0700"
      },
      "message": "Merge \"Track animating apps up until animation starts.\" into jb-dev"
    },
    {
      "commit": "06a94f710d4ee6366ebfbd6666c5a58916511eef",
      "tree": "8f5f0ad4bbfc99852a0c680ebf70d9a008e2a5a3",
      "parents": [
        "6385ff511dd998f1fbb189621270e2c19577f66e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 29 10:46:00 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 29 10:46:00 2012 -0700"
      },
      "message": "Track animating apps up until animation starts.\n\nActivityStack sets the mNextAppTransition value before moving the apps\nto their proper position. This makes the test for mNextAppTransition\nbeing TRANSITION_UNSET incorrect. Better to just look for animating.\n\nFixes bug 6565418.\n\nChange-Id: I4651b7d3678e46fc712a8e901992fb01b94c415e\n"
    },
    {
      "commit": "00355d5a592533a3ecb0a5a74aef8e69dd16902a",
      "tree": "b012ef055253877f2922ed707dd66475ccb09444",
      "parents": [
        "bbedfa0036f8de393c05b2ad981695ae74e7ab42"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Sun May 27 16:12:45 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue May 29 13:36:46 2012 +0200"
      },
      "message": "Make location providers upgradeable.\n\nUse config_netowrkLocationProviderPackageName and\nconfig_geocodeProviderPackageName as intial packages. If another\npackage exists (or is later installed) that also implements a\nprovider, and has the same signatures as the original providers,\nand has a hgiher version number, then use that instead.\n\nThe old code used a funky fix of package name substring checks\nand service checks that was broken and not upgradeable.\n\nBug: 6499445\nChange-Id: Ic58f09cf85d31d9abf47707093e22f31dda25cf0\n"
    },
    {
      "commit": "2af7b9151f8df3581e38847ac711185426df5dea",
      "tree": "b5c766f6d2be5161866f9aba7fd0833ed517da08",
      "parents": [
        "02a43d3adf8a0b43503f5e266ca332fc1ba23ccc",
        "3d7b7d59c82fdeac039382ed1724af9c9cb70107"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu May 24 17:48:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 24 17:48:44 2012 -0700"
      },
      "message": "Merge \"Redraw all windows earlier in power on sequence.\" into jb-dev"
    },
    {
      "commit": "3d7b7d59c82fdeac039382ed1724af9c9cb70107",
      "tree": "956cf0ffdf04dc26b5c60734c2c268c93ab8fe35",
      "parents": [
        "6385ff511dd998f1fbb189621270e2c19577f66e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu May 24 11:28:26 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu May 24 15:38:54 2012 -0700"
      },
      "message": "Redraw all windows earlier in power on sequence.\n\nSend a message to all windows to redraw before notifying\nPhoneWindowManager of screen on. This minimizes the delay in\nscreen update that causes the keyguard clock to display the old time\nbefore displaying the current time.\n\nFixes bug 6381021.\n\nChange-Id: Ida7071e7dac2284540f101c5d004511b52133b91\n"
    },
    {
      "commit": "1ed1de7ab2ae03f82500dbf6272bf036d89bd0c9",
      "tree": "d5106e9f781b7007eae7b4b0543ed7812faa42e2",
      "parents": [
        "90fb2dd6738792ebead64c5f03a4f407d36420de",
        "5a0c320a820a0ccaafaa87ad858a29bf5d88a8b9"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu May 24 12:27:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 24 12:27:23 2012 -0700"
      },
      "message": "Merge \"Modify logging to debug this issue\" into jb-dev"
    },
    {
      "commit": "6385ff511dd998f1fbb189621270e2c19577f66e",
      "tree": "57395fc2bcf9aca4757ad4aebeb3ae34f576aa3e",
      "parents": [
        "0100625bb316ecbd99873b72756ffba8613c3456",
        "e19f39b79c831aea4d51a3309025acdf69d1e609"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu May 24 11:38:12 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 24 11:38:12 2012 -0700"
      },
      "message": "Merge \"Advise persist threshold outside NPMS lock.\" into jb-dev"
    },
    {
      "commit": "5a0c320a820a0ccaafaa87ad858a29bf5d88a8b9",
      "tree": "0b42d803675a506a26a64ad96ff47b78a84cacdb",
      "parents": [
        "956f28edae64268a67af22baee2ef873264921b4"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue May 22 16:07:46 2012 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu May 24 10:47:10 2012 -0700"
      },
      "message": "Modify logging to debug this issue\n\nLogging exec time on startUsingNetworkFeature as we\u0027ve had some reports suggesting it\u0027s\ncausing ANRs.\nRemove some logging from NDC so it\u0027s local log is more useful.\n\nbug:6492166\nChange-Id: I258ff6c59bff2c65935242d50496d84720c5d493\n"
    },
    {
      "commit": "0100625bb316ecbd99873b72756ffba8613c3456",
      "tree": "3493a8349facdef995995090c32f7d64d14b48da",
      "parents": [
        "222f56135026627637e9db4801d6532b1ff16657",
        "13fe2a5330a5df662d7b1b136e7b08fe34c94a42"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu May 24 10:42:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 24 10:42:23 2012 -0700"
      },
      "message": "Merge \"Fix bug #6522190 MountService should respond to configuration changes (\"INTERNAL STORAGE\" string should be translated dynamically)\" into jb-dev"
    },
    {
      "commit": "e19f39b79c831aea4d51a3309025acdf69d1e609",
      "tree": "60305af623efdc2bce8adeec5097e280d3fccc1d",
      "parents": [
        "d525baa3a84928e16973fcf7f3d464adac513c1d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu May 24 10:21:16 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu May 24 10:21:16 2012 -0700"
      },
      "message": "Advise persist threshold outside NPMS lock.\n\nBug: 6492166\nChange-Id: Ibebdc7e9b8cae27c12fd7b61b53ab60287a0364d\n"
    },
    {
      "commit": "7018a90c323a7f0deb37939d5505ff112ac637f5",
      "tree": "3ac7f730b995befed635e3dd27ce6b4ea8f4e567",
      "parents": [
        "f927e17ae543b6edeae8200cc86c59c3ee740670"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu May 24 18:10:37 2012 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu May 24 18:21:45 2012 +0900"
      },
      "message": "Fix the issue on matching the locale in TextServicesManagerService\n\nBug: 6542210\n\nChange-Id: I42d84b684d5689e8fceecb705bb51d19d847477a\n"
    },
    {
      "commit": "67e6070fa10bbd313c8ebe0de4e0440b688c569e",
      "tree": "8f0d8f1c3bcf646d95f711faf04ecfe4b0fd4f53",
      "parents": [
        "9cf5831f2b94f5e2edd7fd87abef4e9fac8aa82d",
        "ef25d7a01910d5547b60c9cc52d4fa4a9e40b6fa"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed May 23 18:30:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 23 18:30:25 2012 -0700"
      },
      "message": "Merge \"Change method of tracking moving AppWindowTokens.\" into jb-dev"
    },
    {
      "commit": "9cf5831f2b94f5e2edd7fd87abef4e9fac8aa82d",
      "tree": "2f0aebd98228cb81631c822e37dd4c3ff1080bf7",
      "parents": [
        "c1cabdfbbb5de2c286fc9a4fe995b7b630a74a0d",
        "8e4df6c1e261a5b41193b00b1c0ce0badaa84f1c"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed May 23 18:29:39 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 23 18:29:39 2012 -0700"
      },
      "message": "Merge \"Fix jank when launching apps that show wallpaper.\" into jb-dev"
    },
    {
      "commit": "ef25d7a01910d5547b60c9cc52d4fa4a9e40b6fa",
      "tree": "eeeedf3d0452c3e07f758e5344c34ea1fe92c793",
      "parents": [
        "ae14715284837aebe179f790e0456d2bdb367583"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 15 23:01:47 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed May 23 17:07:36 2012 -0700"
      },
      "message": "Change method of tracking moving AppWindowTokens.\n\nStop trying to keep track of the AppTokens that have been moved\nto the top and bottom and then try and match the WindowStates when\ntransitions are goodToGo. Instead rebuild the WindowState order based\non the AppToken order when we are goodToGo.\n\nWhen moving AppWindowTokens lower in mAppTokens create a new ArrayList\nof AppWindowTokens to keep track of the apps in Z order while\nanimating.\n\nFixes bug 6481078.\n\nChange-Id: I29b33a507b45752f15feb10a9f4b47a3f5eb9f0e\n"
    },
    {
      "commit": "8e4df6c1e261a5b41193b00b1c0ce0badaa84f1c",
      "tree": "63d2c6e011b3b1b8f98964ecebc100efb071f7e8",
      "parents": [
        "85aea3664992cd1e16ef4497c3450b26bdef06b0"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed May 23 16:57:23 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed May 23 16:57:23 2012 -0700"
      },
      "message": "Fix jank when launching apps that show wallpaper.\n\nDo not create a StartingWindow for apps that show wallpaper.\nFix handling of obscure case where found wallpaper is hidden.\n\nFixes bug 6484034.\n\nChange-Id: I07181c4aea56fa9e530df0c95d886fe8ad61ec9d\n"
    },
    {
      "commit": "13fe2a5330a5df662d7b1b136e7b08fe34c94a42",
      "tree": "8b8bea4eb22dad6c116273b38aebbc6bee34501a",
      "parents": [
        "638e012d2b5c2b075b48f86d08daec9b36319cfc"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri May 18 18:08:58 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed May 23 16:38:09 2012 -0700"
      },
      "message": "Fix bug #6522190 MountService should respond to configuration changes (\"INTERNAL STORAGE\" string should be translated dynamically)\n\n- use an ID instead of a String for StorageVolume description\n- use this ID for getting the correct localized version of the description string\n\nChange-Id: I30f3080fce2c889be38bfdf9f5121dffcf8a99e8\n"
    },
    {
      "commit": "4074e8a3f429f62aff3312083d1d925d794ffacc",
      "tree": "fd5bcf7ad88e1729999f3e24c1401304bdf68c9c",
      "parents": [
        "53d003f0e77291e7382c4871e0828014b470ab9f"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed May 23 11:52:36 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed May 23 13:12:13 2012 -0700"
      },
      "message": "System accessibility state update postponed if UI test autmation is running.\n\n1. If a UI test automation accessibility service is connected to the\n   system we pospone state updates in the AccessibilityManagerService\n   for the moment the UI automations service dies or is disconnected.\n\nbug:6540522\n\nChange-Id: I48ddf603b53d2158a00edcf8ad05cfe2575d4d75\n"
    },
    {
      "commit": "53d003f0e77291e7382c4871e0828014b470ab9f",
      "tree": "ba89b9e9048ad51ffe77f51c0f114169941466ba",
      "parents": [
        "81de5a0b11df08b603693b6d3b381ac9f89ebc67",
        "196943fb51789e7c3a39ae7d56aceba5e1304137"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed May 23 11:22:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 23 11:22:04 2012 -0700"
      },
      "message": "Merge \"Modify auto brightness to return to dim level.\" into jb-dev"
    },
    {
      "commit": "64a03875897afe07b731eaf66969e87362a1a740",
      "tree": "966a03890d01dedb3244681888cad40f1d93f812",
      "parents": [
        "89604931a85edd82c6b4a8c798fc1af610ba706e",
        "9bf21873c900e7bf82d864172ab40527a48dae3e"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 22 18:26:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 22 18:26:44 2012 -0700"
      },
      "message": "Merge \"Perform an action in AccessibilityManagerSerivce using wrong process id.\" into jb-dev"
    },
    {
      "commit": "9bf21873c900e7bf82d864172ab40527a48dae3e",
      "tree": "be30de06297f03b68b50fac474b4eeca90e499c0",
      "parents": [
        "0eaeb69d1c4849da8ab1df70b84e90837193df67"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 22 17:43:23 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 22 18:08:02 2012 -0700"
      },
      "message": "Perform an action in AccessibilityManagerSerivce using wrong process id.\n\n1. We are passing the interrogating process id in the remote\n   accessibility requests to catch the query from the same\n   thread. While all other methods were doing this correctly\n   somehow the perform action is using the incorrect process id.\n\nbug:6534935\n\nChange-Id: Icef50833903c562758d51ef316b60c53c7a336c0\n"
    },
    {
      "commit": "2d243bc62a899f7af77886a2a2a82872d63226bb",
      "tree": "50e376d6ac8e59f2d2cc79b0ea02dc28a2ea3dd4",
      "parents": [
        "208236dd9600efb125639bf7ca5715fb341ee8d8",
        "a6e41342e2159402e33866e7145be357065d9c9a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 22 17:07:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 22 17:07:50 2012 -0700"
      },
      "message": "Merge \"Fix issue #5680541: onStartInputView called upon focus loss\" into jb-dev"
    },
    {
      "commit": "208236dd9600efb125639bf7ca5715fb341ee8d8",
      "tree": "855260c317e9570304632dce3af0115fb6ab938b",
      "parents": [
        "956f28edae64268a67af22baee2ef873264921b4",
        "0447a81e6dd9671ab1290deba682423e2aac5a07"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 22 16:54:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 22 16:54:09 2012 -0700"
      },
      "message": "Merge \"Pull showStrictModeViolation off of local threads.\" into jb-dev"
    },
    {
      "commit": "196943fb51789e7c3a39ae7d56aceba5e1304137",
      "tree": "07218131c9f01a62cf2a0bd778ea3b0f76dc67b4",
      "parents": [
        "66757217a6d8e6a156d15be55bf77940e2e6194b"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 15 08:10:35 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 22 16:36:12 2012 -0700"
      },
      "message": "Modify auto brightness to return to dim level.\n\nPrevious auto brightness policy was to only ratchet screen brightness\nup and never return to dim levels until the device was turned off. This\ncaused the screen to be very bright in dim areas and reduced battery\nlife. This change allows the screen to dim down over the course of\na minute to the desired brightness level.\n\nFixes bug 6422464.\n\nChange-Id: I5592c06a495650c6496ec2fc9846d7a10fac4b16\n"
    },
    {
      "commit": "a6e41342e2159402e33866e7145be357065d9c9a",
      "tree": "ac7a34d85795fbbdaa2998706906458b26758835",
      "parents": [
        "2bccea2461556a525c5c65be0364b5b9404c8651"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 22 16:30:34 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 22 16:30:34 2012 -0700"
      },
      "message": "Fix issue #5680541: onStartInputView called upon focus loss\n\nWe should tell the app that it is inactive, before unbinding.\nOtherwise when it is told to unbind it will see that it is still\nsupposed to be active and immediately re-bind.\n\nAlso change the calls to set the active state to go through the\nmessage dispatch path, to ensure ordering is correct.\n\nChange-Id: I246241eac8f7521f42c4c1eee7f46097337e7303\n"
    },
    {
      "commit": "0447a81e6dd9671ab1290deba682423e2aac5a07",
      "tree": "c7b65d684ddd0e9ad91dfb3fdc5d3b3b5f591a60",
      "parents": [
        "ae14715284837aebe179f790e0456d2bdb367583"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 22 16:01:31 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue May 22 16:01:31 2012 -0700"
      },
      "message": "Pull showStrictModeViolation off of local threads.\n\nBy moving the StrictModeViolation display onto the WindowManager\nHandler we avoid potential deadlocks as found in the bug below.\n\nFixes bug 6537798.\n\nChange-Id: Ia46a43d1f7f6e55256f770b9e196602092669b49\n"
    },
    {
      "commit": "ac92087a9a1c464d4b0a58c82dae01cbaa088e89",
      "tree": "cc6096cb4921543434bf4a258c4d1b610f0e1163",
      "parents": [
        "37f29abe1d4a47b7860db66bc38f9f4d21c2817a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 22 11:49:49 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 22 12:15:15 2012 -0700"
      },
      "message": "Fix issue #6499411: Characters not displayed (but suggestion bar is working)\n\nThe problem was that when dismissing the lock screen, the window manager\nwould briefly turn off force hiding when it started animating the transition\nand then turn it back on until the transition was done.\n\nThis would cause it to briefly switch focus to the app behind and then\ntake focus off it.  The app would find out it got focus, and re-start\ninput on itself, asking the input method service to do so.  At this\npoint the input method service would ask the window manager if the\ncaller really had focus, and it may or may not be told no depending\non the timing.  If it is told no, then it doesn\u0027t allow the focus\nswitch to happen at that point, ignoring the new input connection,\nand ultimately when focus does really switch the IME is left talking\nwith an old dead input connection.\n\nI added some code to the input connection to make sure when we are\nno longer using one that we mark it inactive and can\u0027t use it.  This\nbug was especially difficult to track down because it would only\nvisibly break when a GC happened during this time, causing the weak\nreference on the input connection to become null.  With this change\nit will now always break (though in the scenario here only if you\nhit the race condition correctly).\n\nChange-Id: I81a6164dc140c548da1a9736e42cd253e8238a80\n"
    },
    {
      "commit": "ec2c1717780fa4f61ed11dced16a87b8ae5d7fb0",
      "tree": "e50979fd4cf695bf57944338ee6545a7a51a440b",
      "parents": [
        "0eaeb69d1c4849da8ab1df70b84e90837193df67"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 22 11:31:57 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 22 11:32:04 2012 -0700"
      },
      "message": "UI test automation not working.\n\n1. The internal service instance created by AccessibilityManagerService\n   was getting the looper of the current thread when created. This works\n   for real accessibility services but since UI automation service is\n   registered via an IPC the binder thread has no looper. Now we explicitly\n   get the correct looper.\n\nbug:6535435\n\nChange-Id: I63a2ada1b65c4b3c71c3d1e6deb3dfdeb7a3d6d6\n"
    },
    {
      "commit": "0eaeb69d1c4849da8ab1df70b84e90837193df67",
      "tree": "9443450942e9d3427730446126a0dbbae1c7cd10",
      "parents": [
        "c40a7fe00257d5742bd10bc611cd11d1600f469f",
        "14ae367caef3111c5c1f7a0fa42b22b1afe6073a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue May 22 08:54:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 22 08:54:30 2012 -0700"
      },
      "message": "Merge \"Do not bother to remove pending installs\" into jb-dev"
    },
    {
      "commit": "9faa9374c1398ca4a0f3fbfc4feaa5cddeb073b0",
      "tree": "6545694fa6be302c08b369256eafa5d38b883f0a",
      "parents": [
        "1ed074177cac28b5224615941d8ca30be8be465e",
        "e15ccb93add99ebb9cd7aec03a04faa37f45b39d"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon May 21 17:52:26 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 21 17:52:28 2012 -0700"
      },
      "message": "Merge \"Changing the interaction model of the touch explorer.\" into jb-dev"
    },
    {
      "commit": "14ae367caef3111c5c1f7a0fa42b22b1afe6073a",
      "tree": "b6700ba35d7cac99fdc3251f787980e8c4aaf521",
      "parents": [
        "4ce106f5cff5670bf1aae4190612dc8e972f5c28"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon May 21 16:57:32 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon May 21 16:57:32 2012 -0700"
      },
      "message": "Do not bother to remove pending installs\n\nPending install list is cleared if there is an error connecting to DCS,\nso don\u0027t try to remove each pending install in the loop.\n\nChange-Id: I736114878ad92136c3b8a3ca27a1f058adaba395\n"
    },
    {
      "commit": "e15ccb93add99ebb9cd7aec03a04faa37f45b39d",
      "tree": "aa80b8d4fc4099c26246772992411701739bc655",
      "parents": [
        "d51ac09fd7db5d810452138749f9291617c0dbf7"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed May 16 15:48:55 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon May 21 14:08:57 2012 -0700"
      },
      "message": "Changing the interaction model of the touch explorer.\n\n1. Now the user have to double tap to activate the last\n   item. If the last touched window is not active because\n   it does not take input focus the click on the last\n   touch explored location. Othewise the click is on the\n   accessibility focus location.\n\nbug:5932640\n\nChange-Id: Ibb7b97262a7c5f2f94abef429e02790fdc91a8dd\n"
    },
    {
      "commit": "ee3bb6498adc801023798b4fc48b5dcd77e059f5",
      "tree": "eada70969acb954c0664d340b528f07725ca0242",
      "parents": [
        "90497c18f72cf3d7ea2fd611502d0da2c9c69879",
        "1b9ba578f1d2acf86c75110e89ae3d2e0434483a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 21 13:08:17 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 21 13:08:17 2012 -0700"
      },
      "message": "Merge \"Disable debug logs.\" into jb-dev"
    },
    {
      "commit": "1b9ba578f1d2acf86c75110e89ae3d2e0434483a",
      "tree": "90196ec98ea04e426c6e47b171d3e12813400798",
      "parents": [
        "cf39bdf3dff5e29447f6ce734b76dc3490385e58"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 21 10:54:18 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 21 10:54:18 2012 -0700"
      },
      "message": "Disable debug logs.\n\nChange-Id: Icc7d389789885185f2ca9b609bad6096fe290106\n"
    },
    {
      "commit": "d81e950265356c81276b73da68a535ffa48d72f0",
      "tree": "eec30b460669c705c17213b45176f33bdf2dbe64",
      "parents": [
        "5d4d23ebdf42a90207a86fc258a44e9540f356ab"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon May 21 12:58:45 2012 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon May 21 18:30:14 2012 +0900"
      },
      "message": "Fix the issue on the inconsistent condition of InputMethodSubtype\n\nBug: 6510104\nChange-Id: I67790e5f59d0d05340b74eca1029c60f381061b8\n"
    },
    {
      "commit": "5d4d23ebdf42a90207a86fc258a44e9540f356ab",
      "tree": "661f486db651c87d6c2b0a202b7ff90639a9913e",
      "parents": [
        "cf39bdf3dff5e29447f6ce734b76dc3490385e58",
        "0a1bcf4e0d0c26af3f6ad3e57726082c92549bd3"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Sun May 20 19:59:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun May 20 19:59:50 2012 -0700"
      },
      "message": "Merge \"Consolidate the initialization of InputMethodManagerService not to use resource values until system ready\" into jb-dev"
    },
    {
      "commit": "cf39bdf3dff5e29447f6ce734b76dc3490385e58",
      "tree": "90900366888a32fbfa769f541b0bd8dbbcec748a",
      "parents": [
        "51f2430217a377bc2913862d98a97d0087914540"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 18 14:41:19 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun May 20 14:56:22 2012 -0700"
      },
      "message": "Add support for switching between multiple keyboard layouts.\n\nAlso show a notification when an external keyboard is connected\nand does not have a keyboard layout selected yet.\n\nBug: 6405203\nChange-Id: Id0ac6d83b3b381f8a236b2244a04c9acb203db3c\n"
    },
    {
      "commit": "255632d16064bf8e65b1773c4f0884267b9ec93f",
      "tree": "a52be8c1ca01bf04026133a2391fa56b195a405c",
      "parents": [
        "9579bf821ea4c1c5435f8e62973acd9b72c7902c",
        "067ca32a526113bdae8756cda0369883f8227199"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri May 18 17:32:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 18 17:32:48 2012 -0700"
      },
      "message": "Merge \"Prevent dim surface from flashing.\" into jb-dev"
    },
    {
      "commit": "067ca32a526113bdae8756cda0369883f8227199",
      "tree": "ba246201c076ccb7faa01153256e1a982f013a65",
      "parents": [
        "ae14715284837aebe179f790e0456d2bdb367583"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri May 18 17:19:51 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri May 18 17:19:51 2012 -0700"
      },
      "message": "Prevent dim surface from flashing.\n\nThis fix keeps the dim surface below the highest shown layer. If\ntwo shown layers were both dim it was ambiguous where the dim surface\nwould appear causing dialogs to first be dimmed and then flash when\nthe dim was put behind them.\n\nFixes bug 6497476.\n\nChange-Id: I360cf2d23d58fc4c03edbbed16d79c08c29e48b9\n"
    },
    {
      "commit": "5320eb8938098c9824093f7f842a0a97bbc190a4",
      "tree": "6f3c6affb49e151414e5948e40a942de15e7d836",
      "parents": [
        "787c9ec558a06bb8ebcb5a77f5268cedd218fd1b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 18 12:05:04 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 18 15:04:53 2012 -0700"
      },
      "message": "Fix activity resolver, issues #6519130 and #6507239\n\n6519130: Starting ResolverActivity with no arguments crashes system_server\n6507239: ResolverActivity may bypass signature permissions\n\nChange-Id: I64534f781bc6b7eb45e85dbe3a55d351ee28e85c\n"
    },
    {
      "commit": "787c9ec558a06bb8ebcb5a77f5268cedd218fd1b",
      "tree": "256a209f1fb976d1058c714270a941cede048ae7",
      "parents": [
        "196a7dae6387b118f73c78b7ae16ebfa604ae249",
        "70c70530bd6793869736ec894498e4ebf5dc9b20"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri May 18 11:40:42 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 18 11:40:42 2012 -0700"
      },
      "message": "Merge \"Transition from DEV network stats to XT.\" into jb-dev"
    },
    {
      "commit": "0a1bcf4e0d0c26af3f6ad3e57726082c92549bd3",
      "tree": "cde17ee0ea3c2a3e2918556bb3237277e8183f8a",
      "parents": [
        "dabb19fcd1b0d7b2c21be37aa0b75df5e35f1d6f"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed May 16 19:26:31 2012 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri May 18 16:00:40 2012 +0900"
      },
      "message": "Consolidate the initialization of InputMethodManagerService not to use resource values until system ready\n\nBug: 6477193\nInputMethodManagerService have used the resource value of \"isDefault\" in the constructor. We should wait to use that value until system ready.\nChange-Id: I682fc109c303d8c7fd33d494c59e8e28d6dc6fa5\n"
    },
    {
      "commit": "1ca4399706103fd9df50661866caaeed95221621",
      "tree": "e73a826575c3d457ec62ebf86897ced0028a7f9b",
      "parents": [
        "88b756cd249d1dd4aefb92a73a65fa76cd8ef0d5",
        "f1be6861daea57ba0a1595739a899d05229d6d15"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu May 17 20:57:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 20:57:56 2012 -0700"
      },
      "message": "Merge \"Enforce the minTime parameter in LocationManager#requestLocationUpdates\" into jb-dev"
    },
    {
      "commit": "abe3927701c0aff839498272565aeee714aa6e9d",
      "tree": "d6b9dffef79d7a626d2b6163628108a19dbfa6c0",
      "parents": [
        "665935c10ad281721c495621fab7561f2a28842e",
        "0cf2c8a53350a800055e76c1c9bf0a6d44480768"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 17 18:18:27 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 18:18:27 2012 -0700"
      },
      "message": "Merge \"Fix issue #6515427: Add android.hardware.television and fix...\" into jb-dev"
    },
    {
      "commit": "0cf2c8a53350a800055e76c1c9bf0a6d44480768",
      "tree": "67f2150a49ee93cd141c4fa23ec0526ef0c12ad3",
      "parents": [
        "20c0cdbbf79cef18e59514e0f53dfbcac0bef600"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 17 17:29:49 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 17 18:11:14 2012 -0700"
      },
      "message": "Fix issue #6515427: Add android.hardware.television and fix...\n\n...logic for notouch in Configuration\n\nAdded new TELEVISION feature.\n\nWe now force the configuration to \"television\" if the TELEVISION\nfeature is set, and \"notouch\" if the TOUCHSCREEN feature is not set.\n\nAlso cleaned up documentation, deprecated some configurations that\nare not used.\n\nChange-Id: If1c7a284b580a8a66bda2a75f0c7fa841b3dc9b7\n"
    },
    {
      "commit": "ae9d040f715130389de3dbc3bf52e24e5f29425a",
      "tree": "7b233b6d9f8f3c4eefb65a6f27c92c7975eb7e3f",
      "parents": [
        "27cb3f8c44be79f78a0c47b5631472705acb3e96",
        "51a573c76737733638c475f52e441c814e6645cc"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 17 16:42:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 16:42:09 2012 -0700"
      },
      "message": "Merge \"Wait for ASECs to be scanned before proceeding\" into jb-dev"
    },
    {
      "commit": "27cb3f8c44be79f78a0c47b5631472705acb3e96",
      "tree": "fd504ab250b93424bbcaa99f13a7edf7cedf93ef",
      "parents": [
        "dc9445ba4cb2e261719d3c38956d9cbe1fddcd64",
        "97ea122c6526125e64213e9c10d9c20f9bc70d9c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu May 17 16:41:53 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 16:41:53 2012 -0700"
      },
      "message": "Merge \"Eliminate \"backup enabled but not provisioned\" failure modes\" into jb-dev"
    },
    {
      "commit": "dc9445ba4cb2e261719d3c38956d9cbe1fddcd64",
      "tree": "11bfd3bca00e21f2d69f3a477b3f349571b244e8",
      "parents": [
        "9de61ae0ed40fcb147e09797bfb22dcea0b89df6",
        "d9fec5d317c09da6bcc7a54df4e0190a76d21eae"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu May 17 16:33:40 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 16:33:40 2012 -0700"
      },
      "message": "Merge \"Add support for grouping keyboard layouts by collection.\" into jb-dev"
    },
    {
      "commit": "51a573c76737733638c475f52e441c814e6645cc",
      "tree": "74f38cdf51785be396ecf39c344097d8f9695081",
      "parents": [
        "468a2ac63a065680da30f5e796583d53f70f8e25"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 17 13:30:28 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 17 16:06:54 2012 -0700"
      },
      "message": "Wait for ASECs to be scanned before proceeding\n\nMove MountService up the list, then pause waiting for MountService to\nfinish scanning ASECs before the services that require those packages to\nbe ready.\n\nAdditionally, don\u0027t automatically mark all ASEC apps as FLAG_EXTERNAL on\nreboot. This prevents AppWidgets and other things from being used with\nASECs which are on internal storage.\n\nBug: 6445613\nChange-Id: I3e0b3e244fec966814d7a5ea93de5d337aea79bd\n"
    },
    {
      "commit": "97ea122c6526125e64213e9c10d9c20f9bc70d9c",
      "tree": "9fc67c0719b29191484a2f0449374dfb2be54144",
      "parents": [
        "9cb376e792567b5278e0eb418a3aeb848339a283"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu May 17 14:59:41 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu May 17 16:02:15 2012 -0700"
      },
      "message": "Eliminate \"backup enabled but not provisioned\" failure modes\n\nPreviously, the setup app was responsible for telling the backup\nmanager through a side band that the user had passed through the\nbackup/restore-related portion of the setup flow.  Now that the\nflow has been streamlined and certain mandatory portions of it\nare no longer relevant, we can ditch the whole idea of the backup\nmanager\u0027s internal \"provisioned\" state.  This makes setup and the\nsetup \"wizard\" applications less fragile as well as eliminating\nthe possibility of unrecoverable \"backup was never provisioned\"\nfailure modes.\n\nNow, the only check the backup manager has to do is against the\nfull \"device is provisioned\" flag, just like all of the other\ncomponents on the phone that only become usable after the setup\nprocess has exited [such as phone calls].\n\nBug 6493520\n\nChange-Id: I13ec8dd8baa1e74ed8569b0326219a98a7f632a9\n"
    },
    {
      "commit": "d9fec5d317c09da6bcc7a54df4e0190a76d21eae",
      "tree": "0eae74e8e946ea2d7715e31c3bd58a8f48befa2a",
      "parents": [
        "ab624c2fd4f0fad6ba7f422a960942e5a7035cea"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu May 17 16:01:54 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu May 17 16:01:54 2012 -0700"
      },
      "message": "Add support for grouping keyboard layouts by collection.\n\nBug: 6405203\nChange-Id: Id818b27ec09928150795d594a96df186a6e39168\n"
    },
    {
      "commit": "f1be6861daea57ba0a1595739a899d05229d6d15",
      "tree": "92debafdbbce7ecc9792e8a6f7e40c919c2f8f47",
      "parents": [
        "c1c140657633cc5b0ff26da1f122fab305d21e01"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue May 15 10:53:42 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu May 17 14:56:54 2012 -0700"
      },
      "message": "Enforce the minTime parameter in LocationManager#requestLocationUpdates\n\nThere is a long history in Android, on both GED and non GED devices\nof GPS providers ignoring the minTime parameter making location updates\nevery second. The problem is usually poor GPS drivers that claim to\ndo scheduling but then do not.\n\nBy making the minTime parameter strict (instead of a hint) we can add\na CTS test to ensure that udpates to not occur too frequently. I believe\nthis is the desired behavior from apps. If apps want to take advantage\nof more frequent updates when another application asks for those updates\nthen it can use the passive provider.\n\nThe CTS test for GPS has already been submitted (as part of CTS Verifier).\n\nBug: 6424983\nChange-Id: I163b9e44ea7ab71530b86fc2282614e0150e90f1\n"
    },
    {
      "commit": "f82e7693ca4396435ef91c7be5348731d9e863c0",
      "tree": "6ca3a6befb63dfbd8713a31a1f5e40cd6687df7f",
      "parents": [
        "ce66556a345aacad517f8eb72ddec20160ce9d61",
        "42d73bba668aea978259e574675f37ede80dd34e"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu May 17 14:19:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 14:19:46 2012 -0700"
      },
      "message": "Merge \"handleAirplaneModeToggled cleanup\" into jb-dev"
    },
    {
      "commit": "42d73bba668aea978259e574675f37ede80dd34e",
      "tree": "af536f08a8cb473ba58b203d3143ebd79fbf36aa",
      "parents": [
        "f03d62007c252271aa30360de90a50b3a974ee8f"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu May 17 14:14:44 2012 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu May 17 14:14:44 2012 -0700"
      },
      "message": "handleAirplaneModeToggled cleanup\n\nAddressing a cosmetic comment from the previous CL\n\nBug: 6504534\nChange-Id: I04981f8b541611cb93110e8b88cd7751027060cc\n"
    },
    {
      "commit": "ce66556a345aacad517f8eb72ddec20160ce9d61",
      "tree": "c5e4beb5bb9097132a2df3cfdc83d4ff45e48380",
      "parents": [
        "d51a68b3d2d347be989b53af1777454f97ad9b46",
        "f03d62007c252271aa30360de90a50b3a974ee8f"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu May 17 14:10:35 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 14:10:35 2012 -0700"
      },
      "message": "Merge \"Fix persisting wifi state on setWifiEnabled() call\" into jb-dev"
    },
    {
      "commit": "f03d62007c252271aa30360de90a50b3a974ee8f",
      "tree": "f6f843b4a01766e46c45f18c5a2e7ed7bfd438fb",
      "parents": [
        "ae14715284837aebe179f790e0456d2bdb367583"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu May 17 12:33:46 2012 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu May 17 14:05:56 2012 -0700"
      },
      "message": "Fix persisting wifi state on setWifiEnabled() call\n\nWhen somebody makes a quick setWifiEnabled calls in back to back succession,\nwe were missing setting the last state because we were only doing that\nwhen wifi was in a particular state from a state machine\u0027s perspective.\n\nThis was done to handle the interaction b/w airplane and wifi and was\ndone in the wrong way. That part is now moved to the code which detects\nairplane mode changes.\n\nIn the longer term, I want to move the whole persisting code as part of\nwifi state machine which is more aware of the exact states wifi is in.\n\nBug: 6504534\nChange-Id: I452f3f4efdeb84458dcfd280269e09ffa3844f05\n"
    },
    {
      "commit": "d51a68b3d2d347be989b53af1777454f97ad9b46",
      "tree": "9ed23d0c9d20766a187d3c0ad50e0e03627f6f00",
      "parents": [
        "9cb376e792567b5278e0eb418a3aeb848339a283",
        "bf08af3323117e15a65b74e66b7499d31537f9e1"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu May 17 13:11:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 13:11:50 2012 -0700"
      },
      "message": "Merge \"Eliminate deferred surface destruction.\" into jb-dev"
    },
    {
      "commit": "70c70530bd6793869736ec894498e4ebf5dc9b20",
      "tree": "30d3012801fb590f541237dec545ae2226680401",
      "parents": [
        "559146fc98ba0c1a272c37e78c38f7a9f145997a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed May 16 14:51:19 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu May 17 10:10:39 2012 -0700"
      },
      "message": "Transition from DEV network stats to XT.\n\nWhen XT stats are available, transition to prefer them over DEV,\nsince they aren\u0027t subject to hardware driver bugs.  Only switches at\nthe first atomic XT bucket, and adds a Settings.Secure flag to force\nback to DEV if needed.  Includes tests to cover transition.\n\nFix tests where device overlay would change which network types\nreflected data usage.  Test both history and summary APIs.  Fixed\ncollection timestamps to reflect full buckets.\n\nBug: 6504744\nChange-Id: Idd7f3b2fdb064c36547c85c51c214fd938c59b7e\n"
    },
    {
      "commit": "bf08af3323117e15a65b74e66b7499d31537f9e1",
      "tree": "f985c43f504e7c101eeb1de2cdaee21150d104bf",
      "parents": [
        "ae14715284837aebe179f790e0456d2bdb367583"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed May 16 19:43:42 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed May 16 20:07:22 2012 -0700"
      },
      "message": "Eliminate deferred surface destruction.\n\nRemoving the code that delays a surface destruction when\nWindowManager.FLAG_KEEP_SURFACE_WHILE_ANIMATING is set. The lock\nscreen that continued to animate after destroySurfaceLocked is no\nlonger used and this code was causing problems.\n\nAlso mDrawState was being set to NO_SURFACE in destroySurfaceLocked\neven if the surface ended up not being destroyed. Later when it was\nreused the false value of mDrawState was messing things up.\n\nThe screen lock bug referenced below no longer levaes the user stuck\nwith a black lockscreen. However it occasionally powers back up in the\nlauncher screen rather than the lock screen.\n\nFixes bug 6485955.\n\nChange-Id: I684104c7e7c39c161a5118aa890889fbae92e635\n"
    },
    {
      "commit": "11e123f7684378578242f5824e14ddba2f68d9ca",
      "tree": "1f8707c6fced4aa3f90fd9ee007db6cfa3cad1fd",
      "parents": [
        "e54c5f13652166c5896ccfa55f047301a6c8b876",
        "87b5d7b26e279be7c7a1b4333babcb2ee895ca01"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed May 16 18:59:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 16 18:59:04 2012 -0700"
      },
      "message": "Merge \"Check system app before removal\" into jb-dev"
    },
    {
      "commit": "824aa860cd0b38b09779aab417612b115fd495a3",
      "tree": "95ef2c58666f15b6fd69d2539320e82f531add0f",
      "parents": [
        "214fc5e61e057f7f34658eb4eeef80d68defb353",
        "53e184d34e7c5b1a65c74fac55f9a635d8131dda"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed May 16 17:52:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 16 17:52:59 2012 -0700"
      },
      "message": "Merge \"Accessibility service needs to request permission to be bound to.\" into jb-dev"
    },
    {
      "commit": "53e184d34e7c5b1a65c74fac55f9a635d8131dda",
      "tree": "ad730599bf1fb5e1465d4e4f0ff57eb35f8835a6",
      "parents": [
        "6387c8a9cb52e6b7bb1a0fb40ee3b66c00ad6697"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed May 16 15:57:10 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed May 16 15:57:15 2012 -0700"
      },
      "message": "Accessibility service needs to request permission to be bound to.\n\n1. Every accessibility services targeting JellyBean or higher has\n   to request a special permission for the system to bind to it.\n\nChange-Id: I6e579326bdf3597f148d6c67317455701ec8af68\n"
    },
    {
      "commit": "87b5d7b26e279be7c7a1b4333babcb2ee895ca01",
      "tree": "87abb3d6163bc839d78397686d40f3e2bd464865",
      "parents": [
        "728e43948c9b4d18a900fa50acad8d2734947b21"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed May 16 13:36:18 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed May 16 15:40:00 2012 -0700"
      },
      "message": "Check system app before removal\n\nMae sure we check to see whether an app is really deleted or just\nskipped.\n\nBug: 6494869\nChange-Id: I918f16e4ccda87f7f6f67855c7a7aef435c64e20\n"
    },
    {
      "commit": "4441a369abfaca15a6c4b258d36405890c93deec",
      "tree": "6c53f7f2044113a9ec4f525cc0748a0e14228413",
      "parents": [
        "e0bb6fe33355f9eeed1273a3614624286a0911ce",
        "bd21b78f0f018f1ea2fc750232ffc20263baa2e0"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed May 16 13:52:29 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 16 13:52:29 2012 -0700"
      },
      "message": "Merge \"Add logging to capture wifi enable\" into jb-dev"
    },
    {
      "commit": "e0bb6fe33355f9eeed1273a3614624286a0911ce",
      "tree": "665a0f6c4a66915657d28817c67b96c7fa28becb",
      "parents": [
        "c5fb5805c92429b08ca715df37e949f31591466a",
        "311c79c3e93589c6fc720fe6c58ed522af591376"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Wed May 16 13:43:27 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 16 13:43:27 2012 -0700"
      },
      "message": "Merge \"Cap widget bitmap usage by screen size (issue 6464700)\" into jb-dev"
    },
    {
      "commit": "bd21b78f0f018f1ea2fc750232ffc20263baa2e0",
      "tree": "33802d4a742d93984982f6123842ce994f5e383c",
      "parents": [
        "ae14715284837aebe179f790e0456d2bdb367583"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed May 16 13:13:54 2012 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed May 16 13:42:46 2012 -0700"
      },
      "message": "Add logging to capture wifi enable\n\nBug: 6504534\nChange-Id: I3c3a803ce5bc53f1bdae697a23b95d63db82717c\n"
    },
    {
      "commit": "8b18354fd43ac3d76546eca6e27c6f7b7e818247",
      "tree": "85df19d028d187c7550203d76d025c85bbb74478",
      "parents": [
        "259c8b70a261972b9e8924e9f9d06f0ef5afd453",
        "b5aff3fde346225fab0f2751d4fb51b92bb73b32"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed May 16 12:19:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 16 12:19:50 2012 -0700"
      },
      "message": "Merge \"Add some logging to NDC.\" into jb-dev"
    },
    {
      "commit": "fe0806a3b60ff54c7444a51b91353e2299ed1bca",
      "tree": "0729301943554528cc3d398255a620024dbfe3d8",
      "parents": [
        "ae14715284837aebe179f790e0456d2bdb367583"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed May 16 12:41:33 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed May 16 12:43:02 2012 -0400"
      },
      "message": "Removing a notification that isn\u0027t there isn\u0027t a big deal.\n\nYou shouldn\u0027t do it, but there\u0027s no need to fault your\nprocess.\n\nBug: 6396830\nChange-Id: I47c20b9829e4e8bb98862f33c3c52be1b5987f37\n"
    },
    {
      "commit": "80fea051ba7e8e3ad82eca3d907aaa4a528658d1",
      "tree": "b81a1d7da1cf593ec5d9fae362d5a8de9098997b",
      "parents": [
        "79f5777d7c1652badeba4be92a5271d2c2276d22",
        "3e52fc25154540faf3c0cb927ff45532cdebdddf"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 15 18:15:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 15 18:15:47 2012 -0700"
      },
      "message": "Merge \"Fix some issues with updating the offsets of a window.\" into jb-dev"
    },
    {
      "commit": "3e52fc25154540faf3c0cb927ff45532cdebdddf",
      "tree": "31d1b46e2f13ed7562308655eb0651f1f944085f",
      "parents": [
        "a7ea0d3968dc990aa76f3535c213e735e6d5e186"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 15 17:58:02 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 15 17:58:02 2012 -0700"
      },
      "message": "Fix some issues with updating the offsets of a window.\n\n- Apply the correct crop rect at this point.\n- Apply the correct position by taking into account the frame left/top.\n- Don\u0027t directly apply the new values if the window is currently\n  animating, since we need to go through the whole animation step\n  to determine what the correct position is (taking into account\n  any transformations).\n\nChange-Id: I15d79354d9779867c49c7c0880faccdead7b021d\n"
    },
    {
      "commit": "b5aff3fde346225fab0f2751d4fb51b92bb73b32",
      "tree": "795701df7447c3b4587da65eb5854748312a8587",
      "parents": [
        "718af32a191066822262ad05cdd525a09c66094f"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue May 15 17:26:57 2012 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue May 15 17:26:57 2012 -0700"
      },
      "message": "Add some logging to NDC.\n\nbug:6492166\nChange-Id: Ib7c7a0927d3e920f6c041f7252f3f24c8e597bc7\n"
    },
    {
      "commit": "e302a162359e191633e966520a6bab4ad569390c",
      "tree": "db60c3db01e336141f0d453f62b2b8c309e0bd4d",
      "parents": [
        "bea7afc52cc85e35b7fc200912246c62d3791198"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 15 14:58:32 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 15 14:58:32 2012 -0700"
      },
      "message": "A few odds and ends.\n\n- Add documentation on \"television\" UI mode.\n- Tweak new documentation and implementation around propagating\n  URI grants through choosers.\n- Add new activity launch flag for closing system dialogs.\n\nChange-Id: I978c05f0dc3d16e1c55d43631828b9efa6335b19\n"
    },
    {
      "commit": "bea7afc52cc85e35b7fc200912246c62d3791198",
      "tree": "6b3b08efa7bf51ff53c4614398c4819531f6c6cf",
      "parents": [
        "0a283346aae1801e5b773673729d97336ce42c43",
        "03fcc333cf0fbbc4df1215649746d6360801efd8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 15 13:57:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 15 13:57:06 2012 -0700"
      },
      "message": "Merge \"Fix issue #6284404: ArrayIndexOutOfBoundsException in...\" into jb-dev"
    },
    {
      "commit": "0bef72450b954ab0254ab948f75a89d65af3808c",
      "tree": "fec657607f166244516e9592bce7d5a4d35672ab",
      "parents": [
        "8414beac87b9fb411566c0c99f772c54d4223a31",
        "5c89f44ea16667bf18297ccb9fb10aad639dab1f"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 15 13:41:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 15 13:41:25 2012 -0700"
      },
      "message": "Merge \"Implement the global accessibility action to expand notifications.\" into jb-dev"
    },
    {
      "commit": "5c89f44ea16667bf18297ccb9fb10aad639dab1f",
      "tree": "39dc1a8aa3c62261836488d1687879b939f479c3",
      "parents": [
        "0aeb05e6ded37dcf3d02ee1e8021ed61d4fec52a"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 15 13:28:09 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 15 13:28:14 2012 -0700"
      },
      "message": "Implement the global accessibility action to expand notifications.\n\nbug:6468852\n\nChange-Id: Id4494a07b1ed96773e22dcfdd5991afe3ee98004\n"
    },
    {
      "commit": "03fcc333cf0fbbc4df1215649746d6360801efd8",
      "tree": "4a68733bcedec1006fd5cb57b512956fe5ad20ec",
      "parents": [
        "d9016b2c949309bccfdc2871e1dba36136969a3f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 15 12:49:40 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 15 13:13:33 2012 -0700"
      },
      "message": "Fix issue #6284404: ArrayIndexOutOfBoundsException in...\n\n...FragmentManagerImpl.restoreAllState\n\nThis was a bug related to the difference between the pre- and post-HC\nbehavior of onSaveInstanceState().  Prior to HC, state was saved\nbefore calling onPause().  Starting with HC, it is saved between\nonPause() and onStop().  To maintain compatibility with existing\napplications, there is a check in ActivityThread for pre-HC to in\nthat case emulate the behavior of old applications, still calling\nonSaveInstanceState() before onPause() but using the state later.\n\nOne of the special cases we had to deal with in the old model of\nsaving state before pausing was restarting an activity that is\nalready paused.\n\nConsider, for example: you have two activities on screen, the one on\ntop not fullscreen so you can see the one behind.  The top activity\nis resumed, the behind activity is paused.  In the pre-HC world, the\nbehind activity would have already had its state saved.\n\nNow you rotate the screen, and we need to restart the activities.\nWe need to destroy the behind activity and create a new instance,\nbut the new instance has to end up in the paused state.  To\naccompish this, we restart it with a flag saying that it should\nend up paused.  For the pre-HC world, since it ends up paused,\nwe need to make sure we still have its instance state kept around\nin case we need it because we can\u0027t regenerate it (since it is\nalready paused).\n\nSo that is what the changed code here is doing.  It goes through\nthe normal create/start/resume steps, but holds on to the current\nsaved state so that it isn\u0027t lost when resume clears it, and then\nputs the activity back to paused and stuffs that old saved state\nback in to it.\n\nThe problem is that this code was doing it for every application,\neven HC apps.  So we end up in a bad state, when a HC app has its\nsaved state sitting there as if it had been saved, even though it\nis only paused.  Now if we go to restart the activity again, instead\nof asking it for a new saved state (as we should for a HC app as\npart of stopping it), we just re-use the existing saved state again.\n\nNow this wouldn\u0027t generally be a huge problem.  Worst case, when we\nrestart the activity yet again we are just instantiating it from\nthe same saved state as we used last time, dropping whatever changes\nmay have happened in-between.  Who cares?  All it has been doing is\nsitting there in the background, visible to the user, but not something\nthey can interact with.  If the activity made changes to its\nfragments, those changes will be lost, and we will restore it from\nthe older state.\n\nHowever...  if one of those fragements is a retained fragment, this\nwill *not* appear in the saved state, but actually be retained across\neach activity instance.  And now we have a problem: if the retained\nfragments are changed during this time, the next activity instance\nwill be created from the most recent state for the retained fragments,\nbut the older state for everyting else.  If these are inconsistent...\nwham, dead app.\n\nTo fix this, just don\u0027t keep the saved state for HC apps.\n\nAlso includes a small optimization to ActivityStack to not push\nthe home screen to the front redundantly.\n\nChange-Id: Ic3900b12940de25cdd7c5fb9a2a28fb1f4c6cd1a\n"
    },
    {
      "commit": "d1ff736d01cebaee70b76f012b660ae549c252b9",
      "tree": "509c37b67ef775aa8e48c5c24df0120d6ab13352",
      "parents": [
        "0aeb05e6ded37dcf3d02ee1e8021ed61d4fec52a"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 15 12:51:38 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 15 12:51:43 2012 -0700"
      },
      "message": "Keeping the screen on during gesture detection.\n\n1. During gesture detection we are not injecting the events we receive\n   since we do not want the accessibility focus to move as a result of\n   the hover event of the gesture. Because of that it was possible that\n   we consume all events since the user performs only gesture to navigate\n   resulting in the screen being off while the user is actively interacting\n   with the device. Now we are poking the user activity in the power\n   manager to keep the screen on.\n\nbug:6485171\n\nChange-Id: I06a09c5297f01bef5e20d471cee76fa7aae0c4fe\n"
    },
    {
      "commit": "bfc1be1101b87f193b043b62edd1722b8c4eb23c",
      "tree": "48530f29fffdce1ccb9d7efa6787312c37348e67",
      "parents": [
        "8ce2d78aa89e89e9a5607d8809bf6d248508a531"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue May 15 11:12:17 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue May 15 11:12:17 2012 -0700"
      },
      "message": "Fix a problem in finish affinity in Activity Manager.\n\nFinishing tasks with an activity affinity was failing if the\nactivity was found at index 0. This fixes the loop condition.\n\nChange-Id: If2e0d294e3e4493bca8b7efd40f24adaf2eb0b6f\n"
    },
    {
      "commit": "a827843f9b46700a187bd3a506498a0f36f474fa",
      "tree": "94347de65921bfbd45062db0bcb1e801b43509c1",
      "parents": [
        "e48d12b78011ff5ddbb6838a038ea5384190ec92",
        "b61a02657b9e577179c934bbb5e199ce919c4642"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 14 17:31:53 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 17:31:53 2012 -0700"
      },
      "message": "Merge \"Fix issue #6020164: Settings crashed on orientation change...\" into jb-dev"
    },
    {
      "commit": "b61a02657b9e577179c934bbb5e199ce919c4642",
      "tree": "4da2799e5a097baeda037e7c525334867888132f",
      "parents": [
        "04d3521839c90d1cccf3ee428963a0aef0088ef9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 14 17:19:18 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 14 17:19:18 2012 -0700"
      },
      "message": "Fix issue #6020164: Settings crashed on orientation change...\n\n...while listening to TTS example\n\nThis was a nice one.  What was happening is that immediately upon\nbeing created, the activity was starting another activity in a\ndifferent process.  The second activity would never show, just\nimmediately exit.  However the original activity had time to\npause and get into stopping itself before the second activity had\ncome back to the activity manager to say it was going away, resulting\nin the activity manager asking the original activity to resume.\n\nAt this point the activity manager\u0027s state is that the second\nactivity is finishing and gone, and the original activity is\nresumed.  However in the app process the original activity is\nstill working on stopping itself, and it eventually completes\nthis and tells the activity manager.  The activity manager now\nchanges its state to STOPPED, even though it is actually resumed\nand that is the last thing it told it to be, and it is now\nproceeding to set itself in that state.\n\nThis would result later in the activity manager sending an\nunnecessary state change to the application.  In the case of\nthe screen here, we next do a rotation change, the activity\nmanager thinks the current state is STOPPED not RESUMED, so it\ntells the application to relaunch the activity in a new config\nbut not in the resumed state.  Now it does the whole \"start a\nnew temporary activity\" thing again, at which point it tries\nto pause the original activity again, and we have an unbalanced\nonPause() call to the app and it falls over.\n\nChange-Id: I38b680746f4c61ae30e7ce831e1de187adf60902\n"
    },
    {
      "commit": "b696c0542cae70d7f66b9011be2f9d1812885159",
      "tree": "00aba688f13fa7c72705dc6651445a7730d6aebc",
      "parents": [
        "4ebaf0f1d4be34f475bb663784b40cf79b9d2184",
        "3d33c268cc7f08ec3d2ec1aa535fa86dec458b2e"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Mon May 14 15:53:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 15:53:48 2012 -0700"
      },
      "message": "Merge \"Adds support for the CertBlacklister.\" into jb-dev"
    },
    {
      "commit": "a69b7eb1fc6ab6f47411493a17463fe7a43b8b3f",
      "tree": "d62579288a0c7b6575999070a86c2308023fd884",
      "parents": [
        "728e43948c9b4d18a900fa50acad8d2734947b21"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon May 14 14:47:06 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon May 14 15:02:19 2012 -0700"
      },
      "message": "Change thread priority for disk measurement to bg\n\nChange the thread priority for all disk measurement and statfs calls to\nbackground priority.\n\nAlso move the measurement fully into the measurement task since it makes\nmore sense.\n\nBug: 6332097\nChange-Id: Iafc2151313ad9b14117daf67e933dccd32f68d54\n"
    },
    {
      "commit": "521e0d794d298201716d30c66164f0c60d6a74c0",
      "tree": "99ec22ef8afa76b586cc3955097c077da2881068",
      "parents": [
        "11fd02f63acba18a1b03351b595490597136fc6a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon May 14 04:01:53 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon May 14 04:11:02 2012 -0700"
      },
      "message": "WindowManager: unset the wallpaper window crop\n\nThis change removes the window crop of the wallpaper when setting its position.\n\nChange-Id: I0f4dc10ea9a724b210f75286580ef391145286df\n"
    },
    {
      "commit": "11fd02f63acba18a1b03351b595490597136fc6a",
      "tree": "a1de7bd1de674ae337af451216b6aba1e4c3e69d",
      "parents": [
        "8f76176016a63026168f5886604d4378f170fc6c",
        "5a48f9758b990fe6c46359927a40aecb6a02b64c"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun May 13 19:09:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun May 13 19:09:47 2012 -0700"
      },
      "message": "Merge \"Update the API version checks.\" into jb-dev"
    },
    {
      "commit": "8f76176016a63026168f5886604d4378f170fc6c",
      "tree": "12c3f8f84e97e3c2e33265c3b65b7225f135b99b",
      "parents": [
        "4286d6d115385391b75db8e6c4e397008ef9b3db",
        "7b1e0c7046abefc0b40884b36197c8a803d9cf6d"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun May 13 19:09:35 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun May 13 19:09:35 2012 -0700"
      },
      "message": "Merge \"Removing default accessibility gesture handling.\" into jb-dev"
    },
    {
      "commit": "2a7a6ca00ab176105b5bbfa6b17bb0dcd058d517",
      "tree": "3fbe473f3de97aa6e5fc6b5e837dea0b8e589e4c",
      "parents": [
        "0d607fbe546ac943de38dad33ae681b09efec6ea",
        "85afd1b6f871d471fdff1980134676a5f1690525"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun May 13 15:24:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun May 13 15:24:32 2012 -0700"
      },
      "message": "Merge \"Implement new window cropping.\" into jb-dev"
    },
    {
      "commit": "5a48f9758b990fe6c46359927a40aecb6a02b64c",
      "tree": "3f3ea72bee2c68c04a6836fcf2b12cb7963341c6",
      "parents": [
        "8d8176d41b8b8f08435e727f03e43e27a542dcc2"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun May 13 13:33:53 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun May 13 13:34:00 2012 -0700"
      },
      "message": "Update the API version checks.\n\n1. Since the API version has been finalized this change\n   updates the SDk version checks to use the JellyBean\n   verson number.\n\nbug:5947249\n\nChange-Id: Ie22fa7e18a7ea7b0c7077d80246a26c17f327ceb\n"
    },
    {
      "commit": "85afd1b6f871d471fdff1980134676a5f1690525",
      "tree": "94f1a2661418208e7969d659dc694353ff43d304",
      "parents": [
        "dca5fb9e7e193d6aed233e0650691675a56022a3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun May 13 13:31:06 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun May 13 13:31:06 2012 -0700"
      },
      "message": "Implement new window cropping.\n\nThe window manager now performs the crop internally, evaluating\nit every animation from, to be able to update it along with\nthe surface position.\n\nChange-Id: I960a2161b9defb6fba4840fa35aee4e411c39b32\n"
    },
    {
      "commit": "7b1e0c7046abefc0b40884b36197c8a803d9cf6d",
      "tree": "65033ef86abd0146f183b8ed423081c057fa8a17",
      "parents": [
        "8d8176d41b8b8f08435e727f03e43e27a542dcc2"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun May 13 11:57:29 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun May 13 12:39:51 2012 -0700"
      },
      "message": "Removing default accessibility gesture handling.\n\n1. The initial design was to have some accessibility gestures\n   being handled by the system if the gesture handling access\n   service does not consume the gesture. However, we are not\n   sure what a good default is and once we add a default handler\n   we cannot remove it since people may rely on it. Thus, we\n   take the simples approach and let the accessibility service\n   handle the gestures. If no gestures are handled the system\n   will work in explore by touch as before.\n\nbug:5932640\n\nChange-Id: I865a83549fa03b0141d27ce9713e9b7bb45a57b4\n"
    },
    {
      "commit": "c8179e78052af3d68725e1160214a736f143f8a2",
      "tree": "9fffad56501d67d9c03aad3a0d36e70c9533395c",
      "parents": [
        "76e07e7767098a885365e4ae8c8bb51f6a8c3b09",
        "d5895a7e8a94e58451af640fe796d1822cbd793f"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Sat May 12 14:01:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 12 14:01:43 2012 -0700"
      },
      "message": "Merge \"Improve transition out of recents\" into jb-dev"
    },
    {
      "commit": "d5895a7e8a94e58451af640fe796d1822cbd793f",
      "tree": "549e026345ecd9aaa578371f85215a128fc56983",
      "parents": [
        "0891a89790777e2f88f413351fafe49dda36714f"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Sat May 12 13:24:58 2012 -0700"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Sat May 12 13:24:58 2012 -0700"
      },
      "message": "Improve transition out of recents\n\n- During the transition, fade the bg to black\n- Exiting activity fades to black\n- Recents background no longer fades away, because\nthen it would fight against the fade to black\nhappening behind it"
    },
    {
      "commit": "3d33c268cc7f08ec3d2ec1aa535fa86dec458b2e",
      "tree": "0b447301cf7fcee0d74605ff1065dacbcb5c0fdb",
      "parents": [
        "9d7bbcb89a3f14331c55ed2bbdcf768a4aa91cc1"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Sun May 06 18:32:19 2012 -0700"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Sat May 12 13:09:45 2012 -0700"
      },
      "message": "Adds support for the CertBlacklister.\n\nThe CertBlacklister is a mechanism for allowing is to use gservices\nto blacklist certs by serial number or public key.\n\nChange-Id: Ie4b0c966a8a43c9823fb550c0b1691204f133ae7\n"
    },
    {
      "commit": "58770232216cd735afdfd3dd53151070e06de5ce",
      "tree": "502d189420768053f373e17e3bb634d0dfd33c8b",
      "parents": [
        "dca5fb9e7e193d6aed233e0650691675a56022a3",
        "7304c343821309dd15f769b18f1de2fa43751573"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 19:32:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 11 19:32:56 2012 -0700"
      },
      "message": "Merge \"Move power HAL interactions to PowerManagerService.\" into jb-dev"
    },
    {
      "commit": "7304c343821309dd15f769b18f1de2fa43751573",
      "tree": "37a1b20d78ee47ed7356c39d00bd1529989cea22",
      "parents": [
        "888da152ece9a8cfe62fad9e7d1a43e792c41e2f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 18:42:42 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 18:42:42 2012 -0700"
      },
      "message": "Move power HAL interactions to PowerManagerService.\n\nThis refactoring sets the stage for a follow-on change that\nwill make use additional functions of the power HAL.\n\nMoved functionality from android.os.Power into PowerManagerService.\nNone of these functions make sense being called outside of the\nsystem server.  Moving them to the PowerManagerService makes it\neasier to ensure that the power HAL is initialized exactly once.\n\nSimilarly, moved ShutdownThread out of the policy package and into\nthe services package where it can tie into the PowerManagerService\nas needed.\n\nBug: 6435382\nChange-Id: I958241bb124fb4410d96f5d5eb00ed68d60b29e5\n"
    },
    {
      "commit": "ab1c5456b789205ef305b19e5a7682b6561aacac",
      "tree": "8299759c0e011a237e0dc762f08343b167090c6f",
      "parents": [
        "6788e028c363583406d513d66d9a78576f984302",
        "35d0e1d11c046b5e5ddf6d12c1a09becb8561af0"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri May 11 16:07:10 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 11 16:07:10 2012 -0700"
      },
      "message": "Merge \"Keep launcher screen from flashing over lockscreen\" into jb-dev"
    }
  ],
  "next": "cd5862586ab555b53ffd0a62488843838d1aa94d"
}
