)]}'
{
  "log": [
    {
      "commit": "329465c6b2407ee086a171cac1a3581f83dbb048",
      "tree": "0d69eee745692b133e3f2c955561c0e09807ffb5",
      "parents": [
        "478923885da8fac0c1e0a8b7d85b98d1988504bc",
        "b4163a6e12ee7100c758c6d3d062ade1f2843fce"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 02 19:14:39 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 02 19:14:39 2012 -0700"
      },
      "message": "Merge \"Add APIs for interacting across users.\" into jb-mr1-dev"
    },
    {
      "commit": "b4163a6e12ee7100c758c6d3d062ade1f2843fce",
      "tree": "2948e83dec184906f2c44ee332431f219b78359d",
      "parents": [
        "b1758cf8cd007bfffb3d8adceca25f3b0c82bd77"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 02 18:31:26 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 02 19:07:57 2012 -0700"
      },
      "message": "Add APIs for interacting across users.\n\n- Expose the existing Context.sendBroadcast() as\n  Context.sendBroadcastAsUser().\n- Add new android:singleUser attribute for services.\n- Add new INTERACT_ACROSS_USERS_FULL permission for full\n  system-level access to cross-user interface (allows\n  sendBroadcastAsUser() to send to any receiver).\n- Add new INTERACT_ACROSS_USERS_FULL permission for\n  more restricted cross-user interaction: this is required\n  for android:singleUser, and allows you to use\n  sendBroadcastAsUser() but only to send to your own\n  receivers.\n\nChange-Id: I0de88f6718e9505f4de72e3f45d29c0f503b76e9\n"
    },
    {
      "commit": "f95f3ebf12bf9ee23b8ed4e940ab007cbc22f3f3",
      "tree": "1cf63ea99447d0336101e56e92b2c8273296b316",
      "parents": [
        "7786687e7eb17c7670dacb08eca3346a945232aa",
        "e7c1d88fba71122038d516d3b758d68f9f92fa64"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 02 14:58:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 02 14:58:47 2012 -0700"
      },
      "message": "Merge \"Allow access to display manager service from isolated processes.\" into jb-mr1-dev"
    },
    {
      "commit": "e7c1d88fba71122038d516d3b758d68f9f92fa64",
      "tree": "6953f3e7c7c4ee0d36117ef7620d70572d5fb58d",
      "parents": [
        "5590027b9b44eb4cabe415720278b85c30d720a8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 02 14:55:26 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 02 14:55:26 2012 -0700"
      },
      "message": "Allow access to display manager service from isolated processes.\n\nBug: 6921302\nChange-Id: I9eed4a24992538e18ad0540b96a8cea2c8a9ef76\n"
    },
    {
      "commit": "2a642a450a07dfdb94d897ef06d2348855dcc431",
      "tree": "0640ccc4efbb78bece455b53890a51226efd37d6",
      "parents": [
        "9866d60ea4f7476df781230a7f33ed5c2af031c9",
        "4f67ba6ba4e861b287a3ff0323c107aa77f66264"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 02 13:16:12 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 02 13:16:13 2012 -0700"
      },
      "message": "Merge \"Refactor DisplayManagerService to be functional.\" into jb-mr1-dev"
    },
    {
      "commit": "24713907fe4632d263aea82f7a35c8fb08918a09",
      "tree": "fbf80caed2388c579d64b20b86b9b9f2586b1640",
      "parents": [
        "26ea2e5df58edfd14717c86854f6bb99975b6a77"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Thu Jul 26 14:07:53 2012 -0700"
      },
      "committer": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Thu Aug 02 11:26:47 2012 -0700"
      },
      "message": "Pass URLs to package verifiers\n\nThis change passes the originating URL and accompanied referrer to\npackage verifiers, when available.\n\nBug: 6544677\nChange-Id: If9ff6663ad7f3426b7aea2aceb1413b689788138\n"
    },
    {
      "commit": "4f67ba6ba4e861b287a3ff0323c107aa77f66264",
      "tree": "d386443cb9522ddd0586e2cb811228d874825022",
      "parents": [
        "26ea2e5df58edfd14717c86854f6bb99975b6a77"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 02 11:23:00 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 02 11:23:00 2012 -0700"
      },
      "message": "Refactor DisplayManagerService to be functional.\n\nChange-Id: Ieac1eca172be5dc5db45302d3afa26188acd4d6d\n"
    },
    {
      "commit": "437a0fbd57662e1d9d260da6f62ff83da2769a7e",
      "tree": "7df1f02b3bcc2d3fc4e22926e55c33e712879419",
      "parents": [
        "a7ce1551a6c05d4f983e283b413cadb1ddc1026d",
        "59c009776dae5ccbdfb93d7151ff2065ca049dc3"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 02 09:20:14 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 02 09:20:14 2012 -0700"
      },
      "message": "Merge \"Introduce multiple displays with DisplayContent.\" into jb-mr1-dev"
    },
    {
      "commit": "59c009776dae5ccbdfb93d7151ff2065ca049dc3",
      "tree": "45ffbc8d93e8f245ed1c78ffa64b8bcc5ae59355",
      "parents": [
        "fa14d824d235c33b137a429c3eb6818f273407ab"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jul 30 12:10:24 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 02 08:47:44 2012 -0700"
      },
      "message": "Introduce multiple displays with DisplayContent.\n\nFix a couple of bugs that turned up.\nRemove touch/focus from display. Add iterators for access.\nRespond to comments. Remove TODOs, and some deviceId parameters.\n\nChange-Id: Idcdb4f1979aa7b14634d450fd0333d6eff26994d\n"
    },
    {
      "commit": "908aecc3a63c5520d5b11da14a9383f885b7d126",
      "tree": "11806df7f127ea695474ae7ab490a95c19965508",
      "parents": [
        "b1980049855fd6c53e109b44ff012a053f9436f7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 31 16:37:34 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 01 10:54:39 2012 -0700"
      },
      "message": "Start moving away from DisplayMetrics.DENSITY_DEVICE.\n\nThis puts in most of the infrastructure needed to allow us to\nswitch between different densities at run time.  The main remaining\nuses of the global are to initialize the Bitmap object (not sure\nwhat to do about that since it doesn\u0027t have anything passed in\nthe constructor to get this information from), and being able to\nload drawables if we need a different density than what was preloaded\nby zygote.\n\nChange-Id: Ifdbfd6b7a5c59e6aa22e63b95b78d96af3d96848\n"
    },
    {
      "commit": "3805e8ca0a5ba05afd8e04e19e440bbbe3469b81",
      "tree": "107a5134100fe07f10c4e5e5fea681d7f655f56a",
      "parents": [
        "40e5df95ff9468cec0624ca7fb14e51c13e4b047",
        "9ec6cdde9f8f22356dcc9f811d99ebf813194721"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 31 18:24:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 31 18:24:25 2012 -0700"
      },
      "message": "Merge \"Optimize memory use of IntentResolver.\" into jb-mr1-dev"
    },
    {
      "commit": "40e5df95ff9468cec0624ca7fb14e51c13e4b047",
      "tree": "f6c14477b4079c1c8344654d3fdd75c4e5d3d276",
      "parents": [
        "24d19fb6ab94cc5fd23f1c9a1d7916948a7fd571",
        "39606a007a5b1309dd000234f2b8cf156c49fd0f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 31 18:11:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 31 18:11:03 2012 -0700"
      },
      "message": "Merge \"Make AtomicFile a public API.  It\u0027s about time!\" into jb-mr1-dev"
    },
    {
      "commit": "39606a007a5b1309dd000234f2b8cf156c49fd0f",
      "tree": "bc9e19a6ad821170705cc26f7f529ae8b7b8bcc1",
      "parents": [
        "d913cf18595b8288125171eec86e42a1d1b4d93e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 31 17:54:35 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 31 17:54:52 2012 -0700"
      },
      "message": "Make AtomicFile a public API.  It\u0027s about time!\n\nChange-Id: Ib34e294747405b7ab709cb0bbb2d9a0cc80ce86a\n"
    },
    {
      "commit": "24d19fb6ab94cc5fd23f1c9a1d7916948a7fd571",
      "tree": "d39fd80a88cb2bfc4ce8a0447856be565a57c632",
      "parents": [
        "8ab8fbbf46d8779f53301e7f706f97608eed7117"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 31 17:11:07 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 31 17:11:07 2012 -0700"
      },
      "message": "Revert \"API to adjust network stats.\"\n"
    },
    {
      "commit": "16ef57791766b92b8e34de4f752db2f522f34c82",
      "tree": "220e69cf69428f93185e8062cda796af88d381bf",
      "parents": [
        "18a917250d4d595759a054e354c99c4c1e633768",
        "e7ed1ce4c84fe92caafc97b1f9044c6647aa3f7f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 31 12:09:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 31 12:09:54 2012 -0700"
      },
      "message": "Merge \"API to adjust network stats. DO NOT MERGE.\" into jb-mr1-dev"
    },
    {
      "commit": "e7ed1ce4c84fe92caafc97b1f9044c6647aa3f7f",
      "tree": "4f2b555dd7fa1eb6a8bfd812b483db4e25a820a8",
      "parents": [
        "7267babae3695408daa96da1f5951c8f22e823a7"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Jul 27 17:35:32 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 31 11:45:17 2012 -0700"
      },
      "message": "API to adjust network stats. DO NOT MERGE.\n\nEnables system apps to correctly account network usage performed on\nbehalf of another application.\n\nBug: 6695246\nChange-Id: I39e243afd57936b6b30157a6ca511a17b6c55c39\n"
    },
    {
      "commit": "e23ae144cc1b6487a7c0e7a33d3016431c81850c",
      "tree": "8c05c1032fc346fbf0d415b8fe6f6997fa473d53",
      "parents": [
        "4fcaa382b79e5f7395ae75dc4687a2f3f3df3f23",
        "fa74f7e04fcad1258a1b85515547dba0466086d8"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jul 31 11:19:40 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 31 11:19:40 2012 -0700"
      },
      "message": "am fa74f7e0: am bba948dc: Merge \"Delay AccountManagerService initialization\" into jb-dev\n\n* commit \u0027fa74f7e04fcad1258a1b85515547dba0466086d8\u0027:\n  Delay AccountManagerService initialization\n"
    },
    {
      "commit": "fa74f7e04fcad1258a1b85515547dba0466086d8",
      "tree": "23c5f583a74ffcc839d9364d281ee1aa637dabed",
      "parents": [
        "bed43546760180f967f0ee0538afbf1f5ef0d649",
        "bba948dc9e95baab9e6fb728927aada4a00d93de"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jul 31 11:17:11 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 31 11:17:11 2012 -0700"
      },
      "message": "am bba948dc: Merge \"Delay AccountManagerService initialization\" into jb-dev\n\n* commit \u0027bba948dc9e95baab9e6fb728927aada4a00d93de\u0027:\n  Delay AccountManagerService initialization\n"
    },
    {
      "commit": "bba948dc9e95baab9e6fb728927aada4a00d93de",
      "tree": "740b8ab9c8639e42e8c1f164158d985888b5ef2c",
      "parents": [
        "971c05a07b42018fa994d0f48d559838de7ed1a0",
        "26ff6626fc4ee0ae46f01ad309b366921da589fe"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jul 31 11:14:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 31 11:14:02 2012 -0700"
      },
      "message": "Merge \"Delay AccountManagerService initialization\" into jb-dev"
    },
    {
      "commit": "5dcbe638ee063201fb476ef475d2beb347f02097",
      "tree": "ef72774687ea0a7585a00fe25227f1e84d1158a8",
      "parents": [
        "66f13d75107fac3e1f251b65229e6d99d212e380",
        "1af5ac1b6801c4da2ef689449fd1fd2eba1ff48e"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Jul 31 09:20:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 31 09:20:25 2012 -0700"
      },
      "message": "am 1af5ac1b: Merge \"DO NOT MERGE. Add package-name-prefix blacklist for location updates.\" into jb-dev\n\n* commit \u00271af5ac1b6801c4da2ef689449fd1fd2eba1ff48e\u0027:\n  DO NOT MERGE. Add package-name-prefix blacklist for location updates.\n"
    },
    {
      "commit": "9ec6cdde9f8f22356dcc9f811d99ebf813194721",
      "tree": "93322ac5ce0a87965a664b9d54c2b269e550f193",
      "parents": [
        "619e4dca8e9dfe4daa0754b0568a7590788cd50e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 31 10:57:54 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jul 30 17:31:19 2012 -0700"
      },
      "message": "Optimize memory use of IntentResolver.\n\nUse raw arrays instead of ArrayList for data structures.\n\nTemporarily includes a copy of the old intent resolver for\nvalidating the new implementation.\n\nChange-Id: I988925669b6686ac73b779be6cd6fe3a9fd86660\n"
    },
    {
      "commit": "26ff6626fc4ee0ae46f01ad309b366921da589fe",
      "tree": "5b2469ff5463e1a7f9175943074877b6dfdb9e49",
      "parents": [
        "47db02bad8fed67025669c41ef0c0dd9cafe7ed2"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jul 30 12:58:03 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jul 30 16:28:44 2012 -0700"
      },
      "message": "Delay AccountManagerService initialization\n\nSince applications can have Account providers, they need to be delayed\nuntil after PackageManagerService says everything is mounted.\nOtherwise the accounts associated with that provider will be removed\nimmediately when startup happens.\n\nBug: 6820670\nChange-Id: Iba81765260421649f706624d0605a40ebc1347b1\n"
    },
    {
      "commit": "48c5eb018b1731bd47caccd43cda2cd36ebc271f",
      "tree": "8d4161bddb28cb388d875e9639e1c7c53d41f5d3",
      "parents": [
        "47db02bad8fed67025669c41ef0c0dd9cafe7ed2"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Sun Jul 29 21:23:08 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Jul 30 13:17:30 2012 -0700"
      },
      "message": "DO NOT MERGE. Add package-name-prefix blacklist for location updates.\n\nThe Settings.Secure value locationPackagePrefixBlacklist and\nlocationPackagePrefixWhitelist contains comma seperated package-name\nprefixes.\n\nLocation \u0026 geo-fence updates are silently dropped if the receiving\npackage name has a prefix on the blacklist. Status updates are\nnot affected. All other API\u0027s work as before.\n\nA content observer is used so run-time updates to the blacklist\napply immediately. There is both a blacklist and a whitelist.\nThe blacklist applies first, and then exemptions are allowed\nfrom the whitelist. In other words, if your package name prefix\nmatches both the black AND white list, then it is allowed.\n\nChange-Id: I4ea2ad56fa6bd75d32151bc250ac25c26a5777c4\n"
    },
    {
      "commit": "fa14d824d235c33b137a429c3eb6818f273407ab",
      "tree": "791ff232610cc8590f3cfabbc0e85b98ce838f4e",
      "parents": [
        "af3fb2325ef43450916882d85928abc5e474133f",
        "b696de5c10ebcc7bf42d8487fc0e56e0e937754d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 27 18:23:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 27 18:23:22 2012 -0700"
      },
      "message": "Merge \"Move and rename user activity event type constants.\" into jb-mr1-dev"
    },
    {
      "commit": "b696de5c10ebcc7bf42d8487fc0e56e0e937754d",
      "tree": "3339fd190bad6be36c5e2ba8f57ebc11a5bb972b",
      "parents": [
        "155fc70252fd9ccee1f05da4e6966a99ec86d499"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 27 15:38:50 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 27 18:14:56 2012 -0700"
      },
      "message": "Move and rename user activity event type constants.\n\nChange-Id: Ie565808796773b6896e71ddfac6aaaf8031de846\n"
    },
    {
      "commit": "ab88f9864e67aca97df8dcca8e99c17854a54510",
      "tree": "7ce1ce9269ec6e740afc56691a14d77b1881ecf0",
      "parents": [
        "a0aa479c0eadd446dc9159195c175e3a5fe083c0",
        "4c628eba480d271d5547af5d4fafc01e0e53a5eb"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Jul 27 16:04:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 27 16:04:56 2012 -0700"
      },
      "message": "Merge \"Split NST handler events away from CS internals.\" into jb-mr1-dev"
    },
    {
      "commit": "6881a10557acf3b0270de54799d6f19437acf584",
      "tree": "2e9bb85ac96858ce0b0f4e10e7f9e176276cd881",
      "parents": [
        "2b8c4b076d24bc7464e9be63946e8c7bd27bb360"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Jul 27 13:04:51 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Jul 27 13:04:51 2012 -0700"
      },
      "message": "Small step towards supporting multiple displays\n\nChange-Id: I353449c2b464394988c7e0203656b5851a0c9127\n"
    },
    {
      "commit": "4c628eba480d271d5547af5d4fafc01e0e53a5eb",
      "tree": "f53a2b5cf1161a16a8ca7f2b4fca2c2a9eec1ce4",
      "parents": [
        "c58392bc2905b0e50ff26340d47c970e78752b99"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Jul 23 13:19:46 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jul 26 14:09:09 2012 -0700"
      },
      "message": "Split NST handler events away from CS internals.\n\nInstead of sharing event space, use a different handler backed by\nthe same looper.\n\nChange-Id: I11f1e4701c341665770ca640f3cba0c295bb7561\n"
    },
    {
      "commit": "10d940d99ff3814cbf4a1b1759a9377b88752f5f",
      "tree": "afc47fe7efa25632dd04129f869a2d275f89e672",
      "parents": [
        "c58392bc2905b0e50ff26340d47c970e78752b99"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Jul 26 09:12:58 2012 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Jul 26 11:09:16 2012 -0700"
      },
      "message": "Fix permission issues for apps\n\nAdd a work around and create a bug for proper fix\n\nBug: 6882233\nChange-Id: I342ef7ecade8b9e2c7d16e82ea9031214b1b4462\n"
    },
    {
      "commit": "fa25bf5382467b1018bd9af7f1cb30a23d7d59f7",
      "tree": "2b65e9c19319112d1873db55a02303a43d68547a",
      "parents": [
        "bbcb123d4923b0c2f36af7b2ade82f5d7832357d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 23 19:26:30 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 25 18:56:16 2012 -0700"
      },
      "message": "Add display manager skeleton.\n\nThe purpose of this change is to remove direct reliance on\nSurfaceFlinger for describing the size and characteristics of\ndisplays.\n\nThis patch also starts to make a distinction between logical displays\nand physical display devices.  Currently, the window manager owns\nthe concept of a logical display whereas the new display\nmanager owns the concept of a physical display device.\n\nChange-Id: I7e0761f83f033be6c06fd1041280c21500bcabc0\n"
    },
    {
      "commit": "ffed02b95adc552a402c646260b9f4dbc3fcf553",
      "tree": "7dfee76192973f7ad97df2a070f995f5d186f0f2",
      "parents": [
        "a807a50cf2c4cec3cb13421043c05a29458b1120",
        "a8b9defade5b937d4ad64f9aff4bca792298f43c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 25 16:14:37 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 25 16:14:38 2012 -0700"
      },
      "message": "Merge \"Stop using raw display size except in window manager.\""
    },
    {
      "commit": "b208a24cf521401912cfce16fce550a995cf1250",
      "tree": "d1e12fdd728ff9de8059fe5d22a380ec30568f2a",
      "parents": [
        "ea56e5ca7444298f2129d221c1b7d7dcbcc079a6"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Jul 25 14:08:09 2012 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Jul 25 14:08:09 2012 -0700"
      },
      "message": "Revise and update CellInfo API\u0027s\n\nChange-Id: I25a46076a244f50edb9da65816b3717e00820b34\n"
    },
    {
      "commit": "a8b9defade5b937d4ad64f9aff4bca792298f43c",
      "tree": "804ddc7192e739ce8ed92a6986d203d16f54d254",
      "parents": [
        "fb5549f64b73069934d79b8ceefa51475bfb2d08"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 23 14:22:49 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 25 11:38:48 2012 -0700"
      },
      "message": "Stop using raw display size except in window manager.\n\nWe don\u0027t actually need the raw size in these places.\nThe logical size is good enough.\n\nStarting to move dependencies on surface flinger\nand window manager out of the Display class.\n\nChange-Id: I2065bee8e5bf7f42c5a452dd1e8479e40ebb0d37\n"
    },
    {
      "commit": "85d28a00043e5985b11f517031d7b2317ac19e10",
      "tree": "7b4ae3d15192046d84e7de3ff047e8fe21948aff",
      "parents": [
        "b6a45cb92892f9080b7a2f131b4386fd1167efbb",
        "aac0d4ed026d1cfbcf3fa81c6e4eb96f4347ca17"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Jul 24 11:11:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 24 11:11:02 2012 -0700"
      },
      "message": "Merge \"Replace left/right with start/end for Gravity / LayoutParams / Padding\""
    },
    {
      "commit": "2eeeec248a38ff33999c83f4b8d5bab7d50e79d2",
      "tree": "2886aaefdd09bbafa7853dbbbb29aa866846045f",
      "parents": [
        "b8acd060d409f0e81ab3510b429cb86d3f34adb8"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Jul 18 13:13:37 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Jul 20 10:07:07 2012 -0700"
      },
      "message": "Improve Location object.\n\nAdd getElapsedRealtimeNano():\n\nCurrently Location just has getTime() and setTime() based on UTC time.\nThis is entirely unreliable since it is not guaranteed monotonic.\nThere is a lot of code that compares fix age based on deltas -\nand it is all broken in the case of a system clock change. System\nclock can change when switching cellular networks (and in some\ncases when switching towers).\n\nDocument the meaning of getAccuracy():\nIt is the horizontal, 95% confidence radius.\n\nMake some fields mandatory if they are reported by a LocationProvider:\n\nAll Locations returned by a LocationProvider must include at the\nminimum a lat, long, timestamps, and accuracy. This is necessary\nto perform fused location. There are no public API\u0027s for applications\nto feed locations into a location provider so this should not cause\nany breakage.\n\nIf a LocationProvider does not fill in enough fields on a Location\nobject then it is dropped, and logged.\n\nBug: 4305998\nChange-Id: I7df77125d8a64e174d7bc8c2708661b4f33461ea\n"
    },
    {
      "commit": "aac0d4ed026d1cfbcf3fa81c6e4eb96f4347ca17",
      "tree": "aba6b8d3317aca0319e2bc447686dc5532914f11",
      "parents": [
        "9a1aa4c4a42f0d7674c762fa70d23ffdd86b1054"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Jul 19 19:21:26 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Jul 19 19:21:26 2012 -0700"
      },
      "message": "Replace left/right with start/end for Gravity / LayoutParams / Padding\n\n- see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi)\n\nChange-Id: Id9af5375fb9b0edeae5232c77e52ecd497bd2e67\n"
    },
    {
      "commit": "db3c8678e5cbdfec011afaf25bde2091152c30ad",
      "tree": "e0f4b593cfba82bd5a35e921eebf351091d2e542",
      "parents": [
        "6b7358d9511df7e519bb417fbed6017c06a33d45"
      ],
      "author": {
        "name": "Haoyu Bai",
        "email": "bhy@google.com",
        "time": "Wed Jun 20 14:29:57 2012 -0700"
      },
      "committer": {
        "name": "Haoyu Bai",
        "email": "bhy@google.com",
        "time": "Tue Jul 17 17:13:03 2012 -0700"
      },
      "message": "Network data activity change intent for network interfaces.\n\nThe activity notification is received from netd, an intent\nDATA_ACTIVITY_CHANGE is then raised for other part of the system to\nconsume.\n\nChange-Id: Idfcc4763c51c5b314c57f546c12557082f06bebf\n"
    },
    {
      "commit": "6b7358d9511df7e519bb417fbed6017c06a33d45",
      "tree": "d3ed008a6b7237153974cf0c6636607a1ee2d848",
      "parents": [
        "71cac13beaf6bb01e0cd8bb58273ccc9b8cbda87"
      ],
      "author": {
        "name": "Haoyu Bai",
        "email": "bhy@google.com",
        "time": "Tue Jul 17 16:36:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 17 16:55:05 2012 -0700"
      },
      "message": "Netd event code for interface class acitivity.\n\nChange-Id: I83d5ca9ab854cb30ce6d9c06a977ca295f0cdbfd\n"
    },
    {
      "commit": "cdce0b9897183f8aef08fe200feb4027fac56290",
      "tree": "43ca233c53b86d7e076aa5ee055872de720d020f",
      "parents": [
        "fe19f1234e460a22e43a53665db1c48613844fa6"
      ],
      "author": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Thu Jul 12 19:06:15 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:31:02 2012 -0700"
      },
      "message": "Handle airplane mode messages in BroadcastReceiver, safe locking, etc\n\nHandle airplane mode messages in BroadcastReceiver\nSafe-lock the access of mBluetooth as a indication of binding state\nbreak indent\n\nChange-Id: Ib24ba0b1f5102c80e55e44b40a8dbf88bc2fad2e\n"
    },
    {
      "commit": "fe19f1234e460a22e43a53665db1c48613844fa6",
      "tree": "43d2967d27df85f154d32c2c2af75cb15bc47584",
      "parents": [
        "6fde3098074ab2551867d1cd919958383b15725f"
      ],
      "author": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Thu Jul 12 16:03:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:30:45 2012 -0700"
      },
      "message": "Add TODO comments to remove start/stopReverseTethering\n\nChange start/stopReverseTethering permission from CHANGE_NETWORK_STATE\nto CONNECTIVITY_INTERNAL\n\nChange-Id: Iac76d5af6418e6a3e2d2f77bf713466981285e1a\n"
    },
    {
      "commit": "6fde3098074ab2551867d1cd919958383b15725f",
      "tree": "1890a45cdc44c8cfd8db46de62a7d3b41e360f1b",
      "parents": [
        "a8c6df0d3a6b929cac3e59abde8309e8a45ea78a"
      ],
      "author": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Wed Jul 11 17:10:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:30:10 2012 -0700"
      },
      "message": "Minor changes. Change some instance variables to be final.\n\nVariable name changes, better code reability.\n\nChange-Id: I9f0e9c8a57d4bacf0723be1f91d621c592860683\n"
    },
    {
      "commit": "a8c6df0d3a6b929cac3e59abde8309e8a45ea78a",
      "tree": "93fe3513d777e30ac8a75cfc1cd5145de6b44106",
      "parents": [
        "9631314e3d28b6e96ef0b7cc777f1a7747a0ac39"
      ],
      "author": {
        "name": "Fred",
        "email": "fredc@broadcom.com",
        "time": "Wed Jul 11 10:25:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:29:44 2012 -0700"
      },
      "message": "Removed startService() call from BluetoothManagerService.\n\nBT enable()/disable() are handled by using the binder interface\n\nChange-Id: I0bb8d4984129706e424320241ca3ea7e12caf0d3\n\nConflicts:\n\n\tcore/java/android/bluetooth/IBluetooth.aidl\n"
    },
    {
      "commit": "9631314e3d28b6e96ef0b7cc777f1a7747a0ac39",
      "tree": "382904644d26733e0cafd295924397e81198a634",
      "parents": [
        "5a1195fd5faf40428bc98e5bc24d09edbf3c3b6c"
      ],
      "author": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Fri Jun 29 16:57:31 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:29:12 2012 -0700"
      },
      "message": "Fix merge error, put in tmp workaround for input manager.\n\nFix merge error, missing enableNoAutoConnect api.\nRemove bluetoothF from inputManageF.systemReady call as tmp workaround.\nRecover shutdownRadios(MAX_RADIO_WAIT_TIME) call in ShutdownThread\n\nChange-Id: Ice2b5c54267755bdbf56c742feabbb8709b92570\n"
    },
    {
      "commit": "bf072a712f584ae1c01022835b0de21c40513d06",
      "tree": "ca02907919a6fc53d048f20059960f68062a314b",
      "parents": [
        "c2f5cc50f70bbb82729659f72e1491de137f7fe2"
      ],
      "author": {
        "name": "fredc",
        "email": "fredc@broadcom.com",
        "time": "Wed May 09 16:52:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:28:12 2012 -0700"
      },
      "message": "Moved BluetoothAdapter.ACTION_STATE_CHANGED broadcast from AdapterService to BluetoothManagerService\n\nChange-Id: I88e5f3fe050cf11eae9c5cf1b7c393a178b8f9b1\n"
    },
    {
      "commit": "c2f5cc50f70bbb82729659f72e1491de137f7fe2",
      "tree": "b4ab8a4f700eee070c1544780324f01b44e6e159",
      "parents": [
        "20738945d482d9e313cd8b48c1bd83b6278934c7"
      ],
      "author": {
        "name": "zzy",
        "email": "zhenye@broadcom.com",
        "time": "Tue May 01 18:05:08 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:27:44 2012 -0700"
      },
      "message": "disable the sync addr flag\n"
    },
    {
      "commit": "a732ffd8e07a024fb15832990546d38d1ddf384e",
      "tree": "043fc5ca4e6118601ed771225759a5fb60096445",
      "parents": [
        "7329e70841ff1ab78e0a9e2042aee1f10102eaf4"
      ],
      "author": {
        "name": "Andre Eisenbach",
        "email": "andre@broadcom.com",
        "time": "Wed May 02 00:39:24 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:26:26 2012 -0700"
      },
      "message": "Re-enable Bluetooth after a reboot, even if airplane mode is enabled.\n\nThis is to resolve Buganizer issue 6325950 and make the behaviour of\nBlueooth and Wifi consistant.\n\nChange-Id: Idd6cfa79136f7847e9e670d6d2aa0bf613b0381f\n"
    },
    {
      "commit": "d6883533e4ac3f73d2fde1db9a1dddf06dac6709",
      "tree": "97b2c1857ff7fd3467541958c2d3c61f4bbee671",
      "parents": [
        "903ac6f399dcd4f574bf388daa7b5f5907d448d3"
      ],
      "author": {
        "name": "fredc",
        "email": "fredc@broadcom.com",
        "time": "Wed Apr 25 17:46:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:25:05 2012 -0700"
      },
      "message": "Fixed socket not closing on BT off. Used RemoteCallbackList to monitor binder deaths in BluetoothManagerService.\n\nChange-Id: I524964bd2836d8c5a4bae095b93ac9481337941d\n"
    },
    {
      "commit": "116d1d4696ac8e300c83dd8a95e20e67717ef520",
      "tree": "8a29707de7929b1964a580a3174894c2d82e2bd4",
      "parents": [
        "649fe497cea2f19e937f84218d1080bdcefe47f2"
      ],
      "author": {
        "name": "fredc",
        "email": "fredc@broadcom.com",
        "time": "Fri Apr 20 14:47:08 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:23:34 2012 -0700"
      },
      "message": "Fixed issue with getting Bluetooth adapter\u0027s name and airplane mode\n\nChange-Id: I18b632223574aa41b09ba30de8e35417fad86cbe\n"
    },
    {
      "commit": "649fe497cea2f19e937f84218d1080bdcefe47f2",
      "tree": "35a6e3b7a02ba6f342feb4258336c43d54e08a4d",
      "parents": [
        "4bedba49fe6989387fd04499b175af56e068da28"
      ],
      "author": {
        "name": "fredc",
        "email": "fredc@broadcom.com",
        "time": "Thu Apr 19 01:07:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:22:56 2012 -0700"
      },
      "message": "Fixed BT on/off issues and added airplane mode handling\n\nChange-Id: If39df19b99a3f45ebe82e89205d8bb0ff036e2a2\n"
    },
    {
      "commit": "f24588615efa6c781ad963f1a5bbdf47359e1b53",
      "tree": "499b3c68998fe139e24b9f18df3dabfccbbaf45b",
      "parents": [
        "a097f51e5fde9d00ebe99f4e1915cc6d4cd078ad"
      ],
      "author": {
        "name": "fredc",
        "email": "fredc@broadcom.com",
        "time": "Mon Apr 16 15:18:27 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:21:50 2012 -0700"
      },
      "message": "Fixed issue with Bluetooth not turning on if enabled called twice in a row or disabled called twice in a row\n\nChange-Id: I26cac2fa347934e0740578b811aa5a6767cf4862\n"
    },
    {
      "commit": "0f42037eb7b5118015c2caca635538324ccf0ccf",
      "tree": "46a7ba36216a2cb617541ec68f18b413419e148f",
      "parents": [
        "919a4c6264b733585152ce1dc6f868c1093d368b"
      ],
      "author": {
        "name": "fredc",
        "email": "fredc@broadcom.com",
        "time": "Thu Apr 12 00:02:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:20:54 2012 -0700"
      },
      "message": "Non persistent adapter service\n\nChange-Id: Ib13d5c77416e58161df0e04d7a15ec0dddbde8b5\n\nConflicts:\n\n\tcore/java/android/bluetooth/BluetoothInputDevice.java\n\nConflicts:\n\n\tcore/java/com/android/internal/app/ShutdownThread.java\n\tservices/java/com/android/server/SystemServer.java\n\nConflicts:\n\n\tservices/java/com/android/server/SystemServer.java\n\tservices/java/com/android/server/pm/ShutdownThread.java\n"
    },
    {
      "commit": "e21a4ac09d2473becaea43a73d19e9e836e7732a",
      "tree": "83818e511bf4a9592d4711458c8c8c305037904e",
      "parents": [
        "75780aa43103c1810ce422f30fb0cbebde4a0716"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Tue Mar 06 17:15:16 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:14:15 2012 -0700"
      },
      "message": "Add a new version of the disable API.\n\nThis allows for the setting to be persisted or not.\nAlso turn on Bluetooth in System Server if needed.\nIt won\u0027t work currently because the service wouldn\u0027t have\nstarted.\n\nChange-Id: I15fa2bff93aa32134c1b565fcbe90ba68614b6a1\n"
    },
    {
      "commit": "3a6794cad739c2b6fcc9b3fc6c4461f88728af8a",
      "tree": "8b809f80ebb1654f7634d294b40dcd67097dd982",
      "parents": [
        "a0a69897dfa3f0ede5558326172fb676e5dbe359",
        "1abb1cb3a8fe17f7866150604c2fd73751da787e"
      ],
      "author": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Mon Jul 16 21:13:26 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:13:26 2012 -0700"
      },
      "message": "Merge \"Changes to Bluetooth Service structure.\""
    },
    {
      "commit": "a0a69897dfa3f0ede5558326172fb676e5dbe359",
      "tree": "f03a8e512704ee7715aaf4f6a1f40cba847c17d9",
      "parents": [
        "a8ae2ee371decb9504c8b449de45a253eae7d5c4",
        "34196187365687d3f144a6de5fef811b52545ac0"
      ],
      "author": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Mon Jul 16 21:13:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:13:06 2012 -0700"
      },
      "message": "Merge \"Remove BT references from System Server.\""
    },
    {
      "commit": "a8ae2ee371decb9504c8b449de45a253eae7d5c4",
      "tree": "51d02e73cf0d590abc4251f54d8d60519df96bc2",
      "parents": [
        "d4d4e715c5f4423b9fadce77b120b8488e011337",
        "9773ebb7783ecd29957b43acbe5b26ba459a7458"
      ],
      "author": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Mon Jul 16 21:12:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:12:48 2012 -0700"
      },
      "message": "Merge \"Dock: Temporary removal of function to get BT address\""
    },
    {
      "commit": "c69238ebc8d011ce225c9540bcf4e79bd3fa8eb0",
      "tree": "d0ce233e8b7df56fd7e3c61015f027ae09e6cdee",
      "parents": [
        "11b0395acad2556a7d20e67799dc31a967294a30",
        "3cc321ecf505d87850740ad3c63849e6793a8ef6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 16 16:18:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 16:18:13 2012 -0700"
      },
      "message": "Merge \"Remove dithering support.\""
    },
    {
      "commit": "3cc321ecf505d87850740ad3c63849e6793a8ef6",
      "tree": "a0bb81da762033fc65a5837de1c27193a4b64c28",
      "parents": [
        "ef4e817ad642303509da1cb28ce5a265e1ac3e17"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 16 16:04:23 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 16 16:17:25 2012 -0700"
      },
      "message": "Remove dithering support.\n\nThe dithering flag is no longer implemented in Surface Flinger\nso this is all dead code.\n\nChange-Id: I74c0e452923207e5b7cfe0eeca9457e5cb990947\n"
    },
    {
      "commit": "f422a5669457c152e36e889c820d64b37e005167",
      "tree": "b32ec54f710ef3b08c624cbff52a2ef44a792a7d",
      "parents": [
        "8ec65d5ba723c6e305680285f5327ae2f04dc38b",
        "55e395ab33f24b009d87a4d45a5566394260fff7"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 16 15:52:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 15:52:54 2012 -0700"
      },
      "message": "Merge \"Remove freezeDisplay(), which is no-op.\""
    },
    {
      "commit": "a46cdc04fa2561de158d3e3beb505e4ba200b315",
      "tree": "aa13963deb52df91b495163f8294d3e5ea6ef229",
      "parents": [
        "f1e43f76e225a7fb845d9e4e52686b3b7a6162e2",
        "c80f72f75e8d5b5fa85b694b64510fad74ea345d"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Mon Jul 16 15:33:19 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 16 15:33:19 2012 -0700"
      },
      "message": "am c80f72f7: Merge \"Fixing issue where you couldn\\\u0027t set null RemoteViews for a widget\" into jb-dev\n\n* commit \u0027c80f72f75e8d5b5fa85b694b64510fad74ea345d\u0027:\n  Fixing issue where you couldn\u0027t set null RemoteViews for a widget\n"
    },
    {
      "commit": "c80f72f75e8d5b5fa85b694b64510fad74ea345d",
      "tree": "5b3d2ef20f18ebcbc188a79b226431cffc4c2143",
      "parents": [
        "eb6727963713137a0f68f02207f057ebec597691",
        "e5827466217b0d44795b23b7c2a09bd08ddc1065"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Mon Jul 16 15:29:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 15:29:44 2012 -0700"
      },
      "message": "Merge \"Fixing issue where you couldn\u0027t set null RemoteViews for a widget\" into jb-dev"
    },
    {
      "commit": "55e395ab33f24b009d87a4d45a5566394260fff7",
      "tree": "43b06113a543c8fe4aff877e997653f0b10ee2a0",
      "parents": [
        "401b1f85746ab7005907747a59534def967d825b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 16 14:57:22 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 16 14:57:22 2012 -0700"
      },
      "message": "Remove freezeDisplay(), which is no-op.\n\nChange-Id: I981ee49e6e2d41a09feaee4b384392e83f7faf3d\n"
    },
    {
      "commit": "7d4252171c8f58e18359e476c9768fea39778489",
      "tree": "e5e4a8486bca968420a35eda9ded70a97eab0c44",
      "parents": [
        "b613e42f0c09106e1b134f1eed62ef4cb88a4506",
        "e0fd693c6098f59004f9e96ad75c058e26c337b0"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Jul 16 14:26:14 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 14:26:14 2012 -0700"
      },
      "message": "Merge \"Improve geofencing: throttle location updates with distance to fence.\""
    },
    {
      "commit": "e5827466217b0d44795b23b7c2a09bd08ddc1065",
      "tree": "c159345e2c6063ff82cbec3dcf147483d2919e2b",
      "parents": [
        "f8d05b4ea61bb0db32c1a7f93f27a13f67c9ef0c"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Mon Jul 16 12:02:10 2012 -0700"
      },
      "committer": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Mon Jul 16 13:56:17 2012 -0700"
      },
      "message": "Fixing issue where you couldn\u0027t set null RemoteViews for a widget\n\n-\u003e As noted here: http://code.google.com/p/android/issues/detail?id\u003d35014\n\nChange-Id: Id5d1c47b6961d4b448453d8b16700801c0137f2b\n"
    },
    {
      "commit": "e0fd693c6098f59004f9e96ad75c058e26c337b0",
      "tree": "d015b05584ab8cb4feab93fe8bdbedcbad7502fa",
      "parents": [
        "357d9cb861e05c514acba8cc0a8fc5ef70e4a356"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Jul 11 10:26:13 2012 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Jul 16 12:18:52 2012 -0700"
      },
      "message": "Improve geofencing: throttle location updates with distance to fence.\n\nPreviously any geofence (proximity alert) would turn the GPS on at full rate.\nNow, we modify the GPS interval with the distance to the nearest geofence.\nA speed of 100m/s is assumed to calculate the next GPS update.\n\nAlso\no Major refactor of geofencing code, to make it easier to continue to improve.\no Discard proximity alerts when an app is removed.\no Misc cleanup of nearby code. There are other upcoming changes\n  that make this a good time for some house-keeping.\n\nTODO:\nThe new geofencing heuristics are much better than before, but still\nrelatively naive. The next steps could be:\n- Improve boundary detection\n- Improve update thottling for large geofences\n- Consider velocity when throttling\n\nChange-Id: Ie6e23d2cb2b931eba5d2a2fc759543bb96e2f7d0\n"
    },
    {
      "commit": "f08a8b78b61bc7f1a6a71c70da25ec3ef41b8cff",
      "tree": "81aad8578fe2518b9c8159a88adba0f893d3d390",
      "parents": [
        "1696af969294e3270011407ad0ed5c4ceb9b28c1"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Mon Jul 16 12:02:10 2012 -0700"
      },
      "committer": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Mon Jul 16 12:04:17 2012 -0700"
      },
      "message": "Fixing issue where you couldn\u0027t set null RemoteViews for a widget\n\n-\u003e As noted here: http://code.google.com/p/android/issues/detail?id\u003d35014\n\nChange-Id: Id5d1c47b6961d4b448453d8b16700801c0137f2b\n"
    },
    {
      "commit": "c9c9a48e7bafae63cb35a9aa69255e80aba83988",
      "tree": "80295bae9e6546d9d7fb604af0fa772ebd18a4fc",
      "parents": [
        "dd0d0ba654cea3051e44ba9ae20ac4b269e123c0"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jul 16 08:46:07 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jul 16 08:46:11 2012 -0700"
      },
      "message": "Removing a workaround for incorrect window position on window move.\n\n1. The window manager was not notifying a window when the latter\n   has been moved. This was causing incorrect coordinates of the\n   nodes reported to accessibility services. To workaround that\n   we have carried the correct window location when making a\n   call from the accessibility layer into a window. Now the\n   window manager notifies the window when it is moved and the\n   workaround is no longer needed. This change takes it out.\n\n2. The left and right in the attach info were not updated properly\n   after a report that the window has moved.\n\n3. The accessibility manager service was calling directly methods\n   on the window manager service without going through the interface\n   of the latter. This leads to unnecessary coupling and in the\n   long rung increases system complexity and reduces maintability.\n\nbug:6623031\n\nChange-Id: Iacb734b1bf337a47fad02c827ece45bb2f53a79d\n"
    },
    {
      "commit": "1abb1cb3a8fe17f7866150604c2fd73751da787e",
      "tree": "a2f4fa365665fc5b25fc66c6f7b90ea3ca719cfc",
      "parents": [
        "34196187365687d3f144a6de5fef811b52545ac0"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Wed Jan 25 16:14:50 2012 -0800"
      },
      "committer": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Fri Jul 13 22:22:51 2012 -0700"
      },
      "message": "Changes to Bluetooth Service structure.\n\nChanges to make Bluetooth Service part of the system_service.\nThese changes may be temporary.\n\nChanges to update to the new disable API.\n\nChange-Id: If89dba17e6e6c6daa53c37684221763a2da076e9\n\nConflicts:\n\n\tservices/java/com/android/server/pm/PackageManagerService.java\n"
    },
    {
      "commit": "34196187365687d3f144a6de5fef811b52545ac0",
      "tree": "41b6c56fd27831be657e028f719130c21f03c010",
      "parents": [
        "9773ebb7783ecd29957b43acbe5b26ba459a7458"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Tue Jan 17 17:00:34 2012 -0800"
      },
      "committer": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Fri Jul 13 22:22:51 2012 -0700"
      },
      "message": "Remove BT references from System Server.\n\nChange-Id: Icfdb3e140aa35174a8b70da57472a1bf2bd0143b\n\nConflicts:\n\n\tservices/java/com/android/server/SystemServer.java\n"
    },
    {
      "commit": "9773ebb7783ecd29957b43acbe5b26ba459a7458",
      "tree": "62d4c1452adb59a4d4aa41fb0f1f76c4274703e2",
      "parents": [
        "313a2167098ce8498db3a50d70724f260e8169c0"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Tue Jan 17 16:51:41 2012 -0800"
      },
      "committer": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Fri Jul 13 22:22:51 2012 -0700"
      },
      "message": "Dock: Temporary removal of function to get BT address\n\nChange-Id: I0d1033654e2708f864649f2b2568be7c9da014ed\n"
    },
    {
      "commit": "99e34591c63ef534ac8042e4978dd54f2e0b65f9",
      "tree": "a3cee2206b676fa463f84ba863d472534c1d5abe",
      "parents": [
        "939f2e43a80f9a6df16b7e18eba5cfffdbf032da"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Jul 13 20:23:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 13 20:23:16 2012 -0700"
      },
      "message": "Does not compile!!!\n\nRevert \"Removing a workaround for incorrect window position on window move.\"\n\nThis reverts commit 939f2e43a80f9a6df16b7e18eba5cfffdbf032da"
    },
    {
      "commit": "939f2e43a80f9a6df16b7e18eba5cfffdbf032da",
      "tree": "7cd646769f8ca112a2818cad0e66be2adb3203a2",
      "parents": [
        "dd0d0ba654cea3051e44ba9ae20ac4b269e123c0"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jul 11 12:00:27 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Jul 13 19:53:37 2012 -0700"
      },
      "message": "Removing a workaround for incorrect window position on window move.\n\n1. The window manager was not notifying a window when the latter\n   has been moved. This was causing incorrect coordinates of the\n   nodes reported to accessibility services. To workaround that\n   we have carried the correct window location when making a\n   call from the accessibility layer into a window. Now the\n   window manager notifies the window when it is moved and the\n   workaround is no longer needed. This change takes it out.\n\n2. The left and right in the attach info were not updated properly\n   after a report that the window has moved.\n\n3. The accessibility manager service was calling directly methods\n   on the window manager service without going through the interface\n   of the latter. This leads to unnecessary coupling and in the\n   long rung increases system complexity and reduces maintability.\n\nbug:6623031\n\nChange-Id: Ibbf98afd29439783ba331a7a0cdce55d7f138922\n"
    },
    {
      "commit": "052db7c25e859be174ab0976e6a31d0604df85a9",
      "tree": "2fd589cfd4fae519e9502847254ca426919f7780",
      "parents": [
        "489041dd4192e594f2180ea7bff705894ab4031d",
        "322e40315609acd5a608440bc469d873e09559ca"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Jul 13 13:39:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 13 13:39:25 2012 -0700"
      },
      "message": "Merge \"Further isolate layout side from animation side.\""
    },
    {
      "commit": "322e40315609acd5a608440bc469d873e09559ca",
      "tree": "ed1f35d926810a38b1180a431b50a05f40cd13b1",
      "parents": [
        "fbf885b652272013f44da71e9f77923333bf62eb"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Jul 13 13:35:20 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Jul 13 13:35:20 2012 -0700"
      },
      "message": "Further isolate layout side from animation side.\n\n- Use local AppWindowAnimators in WindowAnimator rather than\n    using shared WindowManagerService objects.\n- Use local WindowStateAnimators in AppWindowAnimator rather\n    than use AppToken\u0027s WindowState objects.\n- Remove redundant WindowManagerService parameter passed to\n    AppWindowAnimator ctor.\n- Keep from copying parameters from performLayout if the\n    parameters haven\u0027t changed since the last copy.\n- Link WindowStateAnimator to AppWindowAnimator to keep\n    from going through WindowStateAnimator.mWin,\n    WindowState.mAppToken and AppWindowToken.mAppAnimator.\n- Converted attached WindowState in WindowStateAnimator to\n    WindowStateAnimator to eliminate multiple conversions.\n\nChange-Id: I5e35af88d8fdc1a7454984eaea91a1bc4f926978\n"
    },
    {
      "commit": "af665efcbccc621fdeb29422bb422f04adad6972",
      "tree": "23a610a8d8d9a6bcc269168a28ca006f204fc881",
      "parents": [
        "c643ca97a800486359a5fd756936c716dbfffb0d",
        "197a0c82a1fbf337ec0a85d36b6b89c3d6e8a0ac"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 12 16:37:01 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 12 16:37:01 2012 -0700"
      },
      "message": "Merge \"Improve cleanup of file caches.\""
    },
    {
      "commit": "197a0c82a1fbf337ec0a85d36b6b89c3d6e8a0ac",
      "tree": "91ddac285a05fd389615ed6fab622d65b4bf2cee",
      "parents": [
        "9c469ca0ff92ffa533faed9416d725be2204ed55"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 12 14:46:04 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 12 14:46:04 2012 -0700"
      },
      "message": "Improve cleanup of file caches.\n\nThis rewrites installd\u0027s code for deleting cache files to be better:\n\n- Isn\u0027t really stupid about just deleting directories in the order\n  they are found on the filesytem; now collects all cache files and\n  sorts them by mod time to determine which to delete.\n- Also deletes cache files in /data/media and for all users.\n\nThis also tweaks DeviceStorageMonitor to be a little smarter about\ndeciding when to flush cache files, having upper and lower limits\nthat it allows memory to get down to and then flash files to reach\nthe higher free storage limit.  This should reduce the amount that\nwe perform flushing when starting to reach the storage limit.\n\nFinally add a new pm command to force a cache flush.\n\nChange-Id: I02229038e1ad553d1168393e5cb6d5025933271d\n"
    },
    {
      "commit": "f1ca09b9902d007b7ba42f7630f80e18f2ca9006",
      "tree": "c778eaf6a0abfc08e8f6a5472e1ab92705935c42",
      "parents": [
        "149a85ef048c03950f005e30fd7351aaf427cf61",
        "a43ef3d1c553007b3fa158fe1d3ec4ddb99a71af"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jul 12 13:14:34 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 12 13:14:34 2012 -0700"
      },
      "message": "Merge \"Gestures don\u0027t work when turning on Explore by Touch pragmatically.\""
    },
    {
      "commit": "a43ef3d1c553007b3fa158fe1d3ec4ddb99a71af",
      "tree": "33b6c4fb3ac7b65192964b00900d8bf427a803fb",
      "parents": [
        "d59bf6491c70c843f7b755d8bd919189f697ac78"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jul 12 13:07:55 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jul 12 13:07:59 2012 -0700"
      },
      "message": "Gestures don\u0027t work when turning on Explore by Touch pragmatically.\n\n1. There was a misspelled duplicate member in the accessibility service\n   class which was causing inconsistent behavior because one field was\n   updated and another checked.\n\n2. When the set of services that can put the device in explore by touch\n   mode changes we were disconnecting and reconnecting all services\n   and this is not correct. Now only the state of explore by touch is\n   updated appropriately.\n\nbug:6798860\n\nChange-Id: Ib3c119cef8e71c3458d56e4ce6fbde2c2f750dcd\n"
    },
    {
      "commit": "5362f17ff5e8e06601b172bd86c26027ced9780c",
      "tree": "5d42b9b05f148cd90cd0613655a66ede573a3db5",
      "parents": [
        "f16336790bca9d3e946553f2e5a16e14bb9dbc3e",
        "1b003ef05fad1fbdad9674feda9cc1731c7d99dd"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Jul 11 18:15:50 2012 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Jul 11 18:15:50 2012 -0700"
      },
      "message": "Merge commit \u00271b003ef0\u0027 into mit\n\n* commit \u00271b003ef0\u0027:\n  Create telephony-common and mms-common\n\nChange-Id: Ie8876541dbe7f4c933cf7d69910dd204538bc975\n"
    },
    {
      "commit": "a639b311e93ad14d9ee5c2b2c215ed2d86c32d2a",
      "tree": "8fc3e0698132d5fdba03726a1468fefa18dd2a02",
      "parents": [
        "64ab8fcd6f2011c0d185f2973b9615f155f6d239"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Jul 10 12:37:54 2012 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Jul 11 16:02:08 2012 -0700"
      },
      "message": "Create telephony-common and mms-common\n\nThese have been created to reduce the size and complexity\nof frameworks/base.\n\nmms-common was created by moving all of\n  frameworks/base/core/java/com/google/android/mms\nto:\n   frameworks/opt/mms\n\ntelephony-common was created by moving some of\n   frameworks/base/telephony\nto:\n   frameworks/opt/telephony\n\nChange-Id: If6cb3c6ff952767fc10210f923dc0e4b343cd4ad\n"
    },
    {
      "commit": "64ab8fcd6f2011c0d185f2973b9615f155f6d239",
      "tree": "15109f8215440887b2383ea81a53de52c9eaec39",
      "parents": [
        "7e7674489f75003b3f33244345c48f755fef88f1",
        "dcddea95301641e3dc9692ed7d70127085458a24"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Jul 11 15:18:14 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 11 15:18:14 2012 -0700"
      },
      "message": "am dcddea95: Merge \"Handle keyguard visibility states separately. DO NOT MERGE\" into jb-dev\n\n* commit \u0027dcddea95301641e3dc9692ed7d70127085458a24\u0027:\n  Handle keyguard visibility states separately. DO NOT MERGE\n"
    },
    {
      "commit": "f333f5f67a6e2e943123797d8752f946c9a4b399",
      "tree": "8f9d669cff5cc860c0a92848033d79fdfffd746c",
      "parents": [
        "04ca8e577859235a68fa9a5268af528d547310be"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Jul 11 14:37:39 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Jul 11 14:38:29 2012 -0700"
      },
      "message": "Handle keyguard visibility states separately. DO NOT MERGE\n\nPrevious to this change the forceHiding variable was a boolean. This\nchange recognizes the different configurations of the keyguard by\ndefining separate states for forceHiding and testing for window\nvisibility differently in each state.\n\nFixes bug 6786114.\n\nChange-Id: I3460c45ea6da772a4ff76bb016de7aa4b051a673\n"
    },
    {
      "commit": "fbf885b652272013f44da71e9f77923333bf62eb",
      "tree": "5ab64f7642664a172c5bfaceea554be329b21a3d",
      "parents": [
        "db30781663bb907ed6a0915979bc86e1e063d909",
        "5702d4dfb5b81491f873a3617f8d8fc8dc5279e6"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jul 10 14:48:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 10 14:48:06 2012 -0700"
      },
      "message": "Merge \"Notify client side of window movement.\""
    },
    {
      "commit": "4bf18a7c97c0f312ccf12bcd952b420af0c95e5f",
      "tree": "9b150acf56cd6d4ae9cf0bda173aba555b8ad372",
      "parents": [
        "4461f6028df664009c707b3dc1815b789171f4dc"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jul 10 14:08:16 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jul 10 14:08:16 2012 -0700"
      },
      "message": "Handle keyguard visibility states separately.\n\nPrevious to this change the forceHiding variable was a boolean. This\nchange recognizes the different configurations of the keyguard by\ndefining separate states for forceHiding and testing for window\nvisibility differently in each state.\n\nFixes bug 6786114.\n\nChange-Id: I078e0df7865ddafe498ee46e02110c3a017386d0\n"
    },
    {
      "commit": "4461f6028df664009c707b3dc1815b789171f4dc",
      "tree": "aca220b06cb32cac030d5e5ffb5cc33c9cf9486e",
      "parents": [
        "42eae21fb9abcff50ad69ab2faf2ffbdbd3b1156",
        "a3195057fc5874d158cc8ea053aa75d5e016bdcf"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Mon Jul 09 16:43:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 09 16:43:04 2012 -0700"
      },
      "message": "Merge \"Fixing index-out-of-bounds in AppWidgetService. (Bug 6717459)\""
    },
    {
      "commit": "918b53bc531f5bd1ea102e8b827d693bd4d0555b",
      "tree": "00f631c41da810de508abb8e42896416e47134bd",
      "parents": [
        "9c469ca0ff92ffa533faed9416d725be2204ed55"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jul 09 14:15:54 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jul 09 14:15:54 2012 -0700"
      },
      "message": "Isolate layout and animation wallpaper objects.\n\nProvide separate copies of mWallpaperTarget, mWallpaperTokens, and\nmLower/UpperWallpaperTarget in the layout and animation sides of\nWindow Manager.\n\nSimplify constructors of WindowAnimator and WindowStateAnimator.\n\nChange-Id: I7e35794a432c25c4194c046e9e27150d1c905403\n"
    },
    {
      "commit": "2639da500e3d53ea3a17d888b1c0001d043c6b98",
      "tree": "a2c3a32fc1c0c6d0ab88f1b22981b891587e86a6",
      "parents": [
        "12670b5fb401733d14684b8d02259462eb640dc7"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jul 09 09:39:06 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jul 09 09:39:06 2012 -0700"
      },
      "message": "Fix hang on rotation.\n\nA recent optimization to only send updates to WindowManagerService\nwhen there is something to report backfired. One bit indicating\nchange had negative polarity so the update should also have been\nsent when this bit was cleared. This change alters the bit to\npositive polarity.\n\nFixes bug 6780496.\n\nChange-Id: I3336812a60534ebffc9e94b2fb1d0df4d6969bca\n"
    },
    {
      "commit": "12670b5fb401733d14684b8d02259462eb640dc7",
      "tree": "a491ea908b187d78c2463a7ef574ff1fa28103ee",
      "parents": [
        "a76fdb7713d900763cff090557a10d3942b9b3ca"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jul 03 19:15:35 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jul 03 19:15:35 2012 -0700"
      },
      "message": "Make setting wallpaper offset immediate.\n\nWallpaper offset was passing through H Handler before being set.\nIt isn\u0027t part of animation and wasn\u0027t going through animation anyways.\nThis change goes back to original implementation of setting\nwallpaper offset directly from call.\n\nChange-Id: Ied88e2dc042af814b5ba91c7efb839bd82682567\n"
    },
    {
      "commit": "a76fdb7713d900763cff090557a10d3942b9b3ca",
      "tree": "9d2f179ef7912f566065b99e372604fb373a0c62",
      "parents": [
        "462823948eb6af34653305b24aa27ab4186511b2"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jul 03 19:03:02 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jul 03 19:03:02 2012 -0700"
      },
      "message": "Use new object to sync DimAnimator.\n\nThe controls for the DimAnimator were going through the H Handler\nto sync with the Animator. We are switching to using the\nLayoutToAnimator object for passing data from layout to animator.\n\nChange-Id: Ib6d0afabba781c88bcc1c525e3ae424cf19ac1ad\n"
    },
    {
      "commit": "711f90a7c1e99a435fa8f5335f13772f0b41270b",
      "tree": "6bbbc18ea7c66bea5cc97b3782791d75953f02fb",
      "parents": [
        "078ea0a6444bfb5c7ab1678b1c8898e590828731"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jul 03 18:43:52 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jul 03 18:43:52 2012 -0700"
      },
      "message": "Swap source and destination transfer objects.\n\nIt will be better to have the object that moves layout parameters to\nanimation on the layout side, and the object that moves animation\nparameters back to layout on the animation side. That way we can\ndo partial filling of these objects without calling across. We\nmay never do partial draining of these objects.\n\nChange-Id: I88826fa97350f96e309beef386885f55a9a73305\n"
    },
    {
      "commit": "078ea0a6444bfb5c7ab1678b1c8898e590828731",
      "tree": "a8cf559b4a0867918e7814753680a5cce24352c4",
      "parents": [
        "6491e845457d38659d86d792e441a596e9b23358"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jun 25 11:04:29 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jul 03 18:28:46 2012 -0700"
      },
      "message": "Step 2 in consolidating wallpaper animation.\n\nSeparate updateWindowsAndWallpaperLocked into two methods,\nupdateWindowsLocked and updateWallpaperLocked. Eliminates mForceHiding.\n\nChange-Id: I3958cfae09283aaa7f1781d1b54ef224d8e80f3f\n"
    },
    {
      "commit": "6fbda63e68513ece4409dac845588711ab25c39d",
      "tree": "c04d570c2a4179b0af62078fc670142541fb023b",
      "parents": [
        "c8d5f7d607123966651b2bc521ba9c4470952b34"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jul 03 09:26:39 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jul 03 09:31:09 2012 -0700"
      },
      "message": "Merge CL 202423/3 App launching has random pauses.\n\nChange-Id: Iba5616182c02e51f4d9063d0a01b30b9f558549a\n"
    },
    {
      "commit": "c751e37c4fea4aecb7cc8859d8ac9a6e2a8ce93f",
      "tree": "492d6b1454c5f1a904e62851ba6a00a180d85ec3",
      "parents": [
        "80059d6c1b60e9920b7ae133808c989b4d3fa8fe",
        "cc93507124855591be40af55a94deeb33d74e719"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jul 02 17:22:40 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 02 17:22:40 2012 -0700"
      },
      "message": "am cc935071: Merge \"DO NOT MERGE Set force hiding differently\" into jb-dev\n\n* commit \u0027cc93507124855591be40af55a94deeb33d74e719\u0027:\n  DO NOT MERGE Set force hiding differently\n"
    },
    {
      "commit": "cc93507124855591be40af55a94deeb33d74e719",
      "tree": "a0e122542274f84b5657b83b08bf223ac18604b8",
      "parents": [
        "00b9e899320488ff5623d8c80258ed7dfefc7b53",
        "503d6a44a8193d8111eba393651dcb522cc1cf87"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jul 02 17:20:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 02 17:20:00 2012 -0700"
      },
      "message": "Merge \"DO NOT MERGE Set force hiding differently\" into jb-dev"
    },
    {
      "commit": "7b04c2cc816ab53bd303ca97dcbbb8c116047872",
      "tree": "a62fa3e8bce2f6a7a473efd539e23e3cf36b1981",
      "parents": [
        "088f26fe6d5f06832427de97575c46fe1ddda314",
        "80059d6c1b60e9920b7ae133808c989b4d3fa8fe"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jul 02 17:09:18 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 02 17:09:18 2012 -0700"
      },
      "message": "am 80059d6c: am 00b9e899: Merge \"Clear startingDisplayed flag when removing window.\" into jb-dev\n\n* commit \u002780059d6c1b60e9920b7ae133808c989b4d3fa8fe\u0027:\n  Clear startingDisplayed flag when removing window.\n"
    },
    {
      "commit": "80059d6c1b60e9920b7ae133808c989b4d3fa8fe",
      "tree": "9e62c3b7693fd63430f1ef8393b3dff03151c3bc",
      "parents": [
        "e102b8168a9a54cd84c58904111986640286997f",
        "00b9e899320488ff5623d8c80258ed7dfefc7b53"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jul 02 17:05:16 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 02 17:05:16 2012 -0700"
      },
      "message": "am 00b9e899: Merge \"Clear startingDisplayed flag when removing window.\" into jb-dev\n\n* commit \u002700b9e899320488ff5623d8c80258ed7dfefc7b53\u0027:\n  Clear startingDisplayed flag when removing window.\n"
    },
    {
      "commit": "38b2478f63004c493d7f7f1ac0bf07f51d6f0757",
      "tree": "2cc3737dba7d1379ef54c8e4247c365697ec9484",
      "parents": [
        "73d90e797bf52b52372314477553b140818717c9"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jul 02 16:21:28 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jul 02 16:21:28 2012 -0700"
      },
      "message": "Clear startingDisplayed flag when removing window.\n\nThe flag indicating that the Starting window is displayed was not\nbeing cleared when the Starting window was removed. That caused the\ngoodToGo indication to falsely indicate that all windows were drawn\nwhen in fact the destination activity had not yet been drawn. This\ncaused the animation to begin when it was still black behind the old\nanimation.\n\nThis fixes bug 6764727.\n\nChange-Id: Iacef73b0335b9bde2cdc8d0b072034222cd728e8\n"
    },
    {
      "commit": "503d6a44a8193d8111eba393651dcb522cc1cf87",
      "tree": "6318522389e2f7a0ead1d0866ff3951c038b78ad",
      "parents": [
        "73d90e797bf52b52372314477553b140818717c9"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jun 25 11:13:24 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jul 02 13:16:15 2012 -0700"
      },
      "message": "DO NOT MERGE Set force hiding differently\n\nOnly force hide windows when the keyguard is animating in.\n\nFixes bug 6721572.\n\nChange-Id: Iad7b8b811bcf0840726cbf6c6f279dabd08a3aba\n\nConflicts:\n\n\tservices/java/com/android/server/wm/WindowAnimator.java\n"
    },
    {
      "commit": "095c58b73ac112cc7e00771430765434893d8bc5",
      "tree": "43c6ccb97dffe45ea697a1d9ad2eb70403b478db",
      "parents": [
        "f632562f7d2e94978d185d192a62eb73925a59a2"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue May 29 12:40:46 2012 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Jul 02 10:57:11 2012 -0700"
      },
      "message": "Enhance StateMachine Quitting and logging support. DO NOT MERGE\n\nMake StateMachine#quit non-conditional and remove the need to\nprocess the SM_QUIT_CMD it is now private.\n\nRename halting to onHalting.\n\nAdd onQuitting\n\nChange the message specific logging to be more generic and change\nthe xxxProcessedMessagesYyy methods to xxxLogRecXyy names. Also add\naddLogRec(String) and addLogRec(String, State) as the generic logging\nmethods.\n\nbug: 5678189\nChange-Id: I22f66d11828bfd70498db625fe1be728b90478b7\n\nConflicts:\n\n\tservices/java/com/android/server/NsdService.java\n"
    },
    {
      "commit": "5702d4dfb5b81491f873a3617f8d8fc8dc5279e6",
      "tree": "e9e9a95db55f1ee7ef8c3e9d5e807b083c53c59a",
      "parents": [
        "5af65850eaa92c53be37a6973603b1f1e4f02a43"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sat Jun 30 14:10:16 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sat Jun 30 14:10:16 2012 -0700"
      },
      "message": "Notify client side of window movement.\n\nAdd a one way method to notify Views that the window has moved\non the screen. Fixes issues arising from the IME popping up and\ntranslating the window that uses it. Accessibility was left unaware\nof these movements and was drawing the box around the wrong widgets.\nSimilarly PopupWindow used getLocationOnScreen to determine how\nmuch screen real estate was above and below the anchor point to\ndetermine where to put an anchored window.\n\nFixes bug 6623031.\n\nChange-Id: I4731a94d5424c1ec77bf1729fba8fc9ea34cae46\n"
    },
    {
      "commit": "c32e190ea6da8c9acd8dc1a29a6e8794ecf7d857",
      "tree": "d337fdee137eb4d3f99412547949599045dff095",
      "parents": [
        "4efade8a85d1352d91dcb4f4be2c337223688840",
        "a9c3846194b69f1bfa73066be670c9d77f6dd0d7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 29 16:23:49 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 29 16:23:49 2012 -0700"
      },
      "message": "resolved conflicts for merge of a9c38461 to master\n\nChange-Id: Ie7044c4f9f15384c3edd328fa8e2932c731d9d5c\n"
    }
  ],
  "next": "a9c3846194b69f1bfa73066be670c9d77f6dd0d7"
}
