)]}'
{
  "log": [
    {
      "commit": "ae9fc03bdccda709101291bbcd3beaa5b6daebfc",
      "tree": "69367f760a943f9eda3edabcb1130302ea6cb0d8",
      "parents": [
        "6b2c56a299eb05deef2b887549e29e9e9f0f2cf6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 18 15:51:08 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 18 16:58:27 2010 -0700"
      },
      "message": "Add support for throttling motion events.\n\nChange-Id: I24b3a17753e91ecda60a60fe5cd2e6b3260e033d\n"
    },
    {
      "commit": "8c11e952305327183db9f7be719e4c94fde15a7c",
      "tree": "79f9c9fcd7c3e59f96de249dad6e47149a6de0ed",
      "parents": [
        "e6bfceeb10a01c8e89f712c0ffddc9e5e3ad1842"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Aug 12 20:26:23 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Aug 17 15:27:54 2010 -0700"
      },
      "message": "DO NOT MERGE WifiLock extensions for high performance mode\n\nAdd extension to WifiLock to allow apps to operate\nin high performance mode (high power \u0026 disable suspend\noptimizations for battery consumption).\n\nBug: 2834260\nChange-Id: I8b33d307f3d569bc92ba2139b9ed224ffc147547\n"
    },
    {
      "commit": "1a1cd3a878b6389c097e34d114b60cf953edaeaa",
      "tree": "898ab6b9b494d958a5e3570cd19afd17449b49ef",
      "parents": [
        "833533c9292f860e4dfc060a4eba6429cd259ed4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 17 07:42:54 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 17 07:45:47 2010 -0400"
      },
      "message": "GPS: Initialize XTRA support when GPS is enabled\n\nBUG: 2923148\n\nChange-Id: If9a643e385c6c567b30f47d4caa35fa812a2ba43\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "567722eee190f7cf88dc7ea95167db76d5514842",
      "tree": "970afc373019504fade863b2f384f152d181b1ed",
      "parents": [
        "f76a05e985c249f2540eb8925f673b5c63b9566b",
        "1ebccf531d1049853b3b0630035434619682c016"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Aug 15 17:33:02 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 15 17:33:02 2010 -0700"
      },
      "message": "Merge \"Fix problems with determining when to kill apps for wake usage.\" into gingerbread"
    },
    {
      "commit": "1ebccf531d1049853b3b0630035434619682c016",
      "tree": "92e426918dc4dd2068fba01e69797113b59eb63c",
      "parents": [
        "a8d9291d7f93d1aa0d24d71d65c7de2894812177"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Aug 15 13:04:34 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Aug 15 17:27:29 2010 -0700"
      },
      "message": "Fix problems with determining when to kill apps for wake usage.\n\nAlso improve debug printing of various times.\n\nChange-Id: Ifcc288fd1bcbf44c069875ba97925b9e7ffe9a48\n"
    },
    {
      "commit": "e300b8c10c306b575bbbec29d5572ba92a97785e",
      "tree": "97b5bdef9a898c2e8e5b973116a26f8a35cfb3d1",
      "parents": [
        "a8d9291d7f93d1aa0d24d71d65c7de2894812177",
        "b738fb9938631a2e4540f9a9308f49e6be5565b8"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Aug 13 15:59:53 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 13 15:59:53 2010 -0700"
      },
      "message": "Merge \"DO NOT MERGE Always set/remove default routes.\" into gingerbread"
    },
    {
      "commit": "b738fb9938631a2e4540f9a9308f49e6be5565b8",
      "tree": "cfca74d28113fdc7a0282a10b04c2df90a2582e0",
      "parents": [
        "e05184f271f9882a5bf828e353aea40e0c06ff69"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Aug 13 14:16:12 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Aug 13 15:53:13 2010 -0700"
      },
      "message": "DO NOT MERGE Always set/remove default routes.\n\nMust clean up default route if a default 3g connection is replaced\nby a non-default (ie, mms) connection on teh same interface.\n\nAlso stop mucking with all connections dns and routes - do it only\nfor the connection that has changed.\n\nbug:2865974\nChange-Id: Ifdf49080fa0413a4d826813706c809975a562dfa\n"
    },
    {
      "commit": "9adb9c3b10991ef315c270993f4155709c8a232d",
      "tree": "445c2437eeb4b3b5fa5597dc0538c04e0fdf490e",
      "parents": [
        "3f442ece257d416b48f7803a4cc263f0215faa0d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 13 14:09:56 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 13 15:17:49 2010 -0700"
      },
      "message": "Various battery info things:\n\n- Now track wake locks in battery history.\n- Now track sensors in battery history.\n- Some filtering of sensory data.\n- Fixes to some data that wasn\u0027t cleared when resetting battery stats.\n- Print amount discharged since last charge.\n\nAnd the big part -- keep track of wake locks held per process,\nand kill processes that hold wake locks too much while they are in\nthe background.  This includes information in the battery stats\nabout the process being killed, which will be available to the\ndeveloper if the app is reported.\n\nChange-Id: I97202e94d00aafe0526ba2db74a03212e7539c54\n"
    },
    {
      "commit": "fb86ce93079db4465a61489275c65bcf8ce4669e",
      "tree": "ae97d26d4d93bdf22b4f0b07773aded740e4ee16",
      "parents": [
        "65f2490e1baa6eac5905cbc638e69581ebcd8dee"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 11 18:11:23 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 11 18:15:29 2010 -0700"
      },
      "message": "Add watermark support.\n\nUse these system properties:\n\nro.watermark.text\nro.watermark.height\nro.watermark.x\nro.watermark.y\nro.watermark.color\nro.watermark.shadow.radius\nro.watermark.shadow.dx\nro.watermark.shadow.dy\nro.watermark.shadow.color\n\nIf ro.watermark.text is not set, no watermark will be shown.  All others\nhave reasonable defaults if they are not set.\n\nChange-Id: Ibe4a01e6f1c576494ae2462e2688cdfaa8c62cb8\n"
    },
    {
      "commit": "95af0c14a64ef264d2b362ded4ca2b5a169d1066",
      "tree": "fba4bb178de08e99f4c71f882809bab315cec33a",
      "parents": [
        "bd1c082cf90d07e3ccb017b72e59b5ccad81dd07",
        "a41ca77fabe1c7ad12ebb9b69b9e786c07d49fa0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 11 16:15:48 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 11 16:15:48 2010 -0700"
      },
      "message": "Merge \"Add support for the PointerLocation overlay.\" into gingerbread"
    },
    {
      "commit": "bd1c082cf90d07e3ccb017b72e59b5ccad81dd07",
      "tree": "3d39390b4c25ab3fdf9abce37307717ca061cdf1",
      "parents": [
        "8ea71511c64e61fe23004889ff7032f991a751c8",
        "f4c454bac9cfd804603e65c5195f49a344adf82d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 11 15:16:01 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 11 15:16:01 2010 -0700"
      },
      "message": "Merge \"New system property \"sys.boot_completed\" set to 1 when boot completed.\" into gingerbread"
    },
    {
      "commit": "a41ca77fabe1c7ad12ebb9b69b9e786c07d49fa0",
      "tree": "65d87a9c55c869843540884f0fbced6a69841895",
      "parents": [
        "c3fc2d03d58a258c53c9265a70143d4af076b764"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 11 14:46:32 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 11 14:46:32 2010 -0700"
      },
      "message": "Add support for the PointerLocation overlay.\n\nThis change involves adding a new method to IWindowManager,\nmonitorInput() that returns an InputChannel to receive a copy of all\ninput that is dispatched to applications.  The caller must have\nthe READ_INPUT_STATE permission to make this request (similar to\nother window manager methods such as getKeycodeState).\n\nChange-Id: Icd14d810174a5b2928671ef16de73af88302aea0\n"
    },
    {
      "commit": "f4c454bac9cfd804603e65c5195f49a344adf82d",
      "tree": "039e9405d49a1a33f6843795b0926a94a16e361c",
      "parents": [
        "a5ae50cd838b5725c63ed485292aae4edd1a98cb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 11 12:47:41 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 11 12:47:41 2010 -0700"
      },
      "message": "New system property \"sys.boot_completed\" set to 1 when boot completed.\n\nChange-Id: Ie3fc0b1efdfb637b0c780064a71e8c1575e15ca3\n"
    },
    {
      "commit": "a02b8b05dd1e8b8cf169e1f89542ef835b11fc13",
      "tree": "aa1b5fb6b900c064d9914f51c9c3817a2c46f9df",
      "parents": [
        "9902196f9885d369e37cf44084e3f04513511ab0"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 05 16:14:17 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 11 11:20:53 2010 -0700"
      },
      "message": "Move OBB file reading to DefaultContainerService\n\nThe system_server shouldn\u0027t touch files on the SD card. This change\nmoves the things that touch the SD card out to the\nDefaultContainerService so that it will get killed if the SD card goes\naway instead of the system_server.\n\nChange-Id: I0aefa085be4b194768527195532ee6dddc801cfc\n"
    },
    {
      "commit": "5e7833a571967d1dbc8618ac96ad6a379bcdf66a",
      "tree": "f8de5fbf04b798bec177bab0171d1ad77fcfd150",
      "parents": [
        "c6dc45700bf0c18708b0ad2f695ea85fadcbf131"
      ],
      "author": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Mon Aug 09 17:01:11 2010 -0700"
      },
      "committer": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Mon Aug 09 17:01:11 2010 -0700"
      },
      "message": "Fix focus notification\n\nChange-Id: I51d73100695ceb70620754a1897ace681a26d839\n"
    },
    {
      "commit": "f9624764711f9806cd8a8a95c4a0613995bab04a",
      "tree": "37236ac39268ae8c5fda88429a6fe649affc5fc9",
      "parents": [
        "8e15afe799bbe8d332640c1f2b57b5e0458a9625"
      ],
      "author": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Wed Jul 14 17:02:37 2010 -0700"
      },
      "committer": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Fri Aug 06 13:27:31 2010 -0700"
      },
      "message": "Adding a way for Hierarchy Viewer to get the focused window.\n\nChange-Id: I01e6ab4aa24d632fba586cb9e112d8d9df1a681a\n"
    },
    {
      "commit": "5723dfe8c87d0887b8926f43637ed300466890d2",
      "tree": "1bb85eaf9fed48cda01d142a570dbe905f2a440a",
      "parents": [
        "4c5d28cee0537c83ff0e5bc0daaae78f68dfc7c8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Aug 06 10:06:26 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Aug 06 10:15:15 2010 -0400"
      },
      "message": "GPS: Don\u0027t set XTRA download pending flag at boot time.\n\nXTRA data downloads are now strictly on demand from the GPS engine.\nAlso fix typo in handleDownloadXtraData()\n\nChange-Id: Ied1a6e2e62134add4d965326aae909c86f834682\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "1d62c7737c33f92e79f0a180b05969f52484e64c",
      "tree": "efbe9186ce59fc46ddfe08f1d7005c7e2fbf5188",
      "parents": [
        "b9605886d1a94de624b6feb5a81bb37f41653437"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Fri Aug 06 11:32:24 2010 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Fri Aug 06 11:52:38 2010 +0800"
      },
      "message": "Fix the build\n\nChange-Id: I410e2fd057b68e1b5b5b33ee10178a01d3c9b2fa\n"
    },
    {
      "commit": "2d94231ef91c732f649ff7af9520ee9eac441b16",
      "tree": "34907f59357a6b7896c2fa8ce94a5a7e58687b27",
      "parents": [
        "499b743851aa84b9fc1a7e445e189946bc47ad5d"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Aug 05 12:17:37 2010 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Fri Aug 06 08:40:50 2010 +0800"
      },
      "message": "Add SIP service into system server.\n\nChange-Id: Icc39e4e54768cfdcc1b20a3efe6206009b9a8d10\n"
    },
    {
      "commit": "9b87770f53c55a313a7fdc6f553265aabbde3446",
      "tree": "7d3c18b9f003d8c059407fa45b1e7c4f3ee62586",
      "parents": [
        "8c5035696b0aaf30ae49594b845f663fe633ac88",
        "d0a2f86f357f346639a6648b4004266865c979b4"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 04 20:33:32 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 04 20:33:32 2010 -0700"
      },
      "message": "Merge \"Fix crash when startForeground posts a broken Notification.\" into gingerbread"
    },
    {
      "commit": "e2f7417529439d4ff3fd23fbe7fc1fcac4230385",
      "tree": "cafb6120bf33d5e342baacf35f9b77dce0effa75",
      "parents": [
        "508715259c332613240b2399c77d35ea7214f91a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 04 13:35:33 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 04 13:35:33 2010 -0700"
      },
      "message": "Failure to move .dex in eng builds is not fatal\n\nWhen moving between program locations or application names, the .dex\nfile is moved by installd. However, in engineering builds, the\napplications are run through dexopt on-demand. If the .dex file fails to\nmove, we can ignore it because it\u0027s most likely because the .dex file\ndoes not exist yet.\n\nChange-Id: Id5c4dbfa33f19c976acd9f184ccd637752326629\n"
    },
    {
      "commit": "deb112674e9940a46c87fa4e3bae5d8d1ee84ef3",
      "tree": "f5ddf3474923811905ddd1f645a9d7be7d6dd7f5",
      "parents": [
        "866362fcb4db93584143c21934ea355cbf9e0757"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 02 11:36:21 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 04 08:44:31 2010 -0700"
      },
      "message": "Only allow one movePackage operation in-flight\n\nWhen a movePackage operation is requested, don\u0027t allow multiple requests\nto pile up for one package. Once a move is completed, an observer will\nreceive the message and be allowed to call movePackage again.\n\nChange-Id: Ie3842b6d96446febc0037bf9b8f1ca250735edc2\n"
    },
    {
      "commit": "d0a2f86f357f346639a6648b4004266865c979b4",
      "tree": "686b2bfe2b7deda215e330f84786f834c7003350",
      "parents": [
        "e339464f1c8efe7e53b761cf44ff5be6e537ecad"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Aug 03 15:29:31 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 04 10:52:51 2010 -0400"
      },
      "message": "Fix crash when startForeground posts a broken Notification.\n\nThe NotificationManager tries to crash the calling app, but\nin the case of a service calling startForeground, the caller\nis the ActivityManager, so system_server goes down.\n\nNotificationManagerService#enqueueNotificationInternal is a\nnew internal-only method that accepts a UID/PID to use when\npunishing bogus notifications (such as the one in\nhttp://b/2869787).\n\nChange-Id: I84a9854bae630bc90288cebb94f174809d5dac8c\n"
    },
    {
      "commit": "389a916769aaf4b329839285d2f975fc23aadfb4",
      "tree": "ccc2ffd116bdef54f600ab18109e68c69d96b402",
      "parents": [
        "5d46ce24cc46dc57d31f809302af916999114ced"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Aug 03 15:41:05 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Aug 03 15:41:05 2010 -0700"
      },
      "message": "Usage Stats: don\u0027t block writing stats to disk.\n\nI was seeing lots of stack traces of people hung for noticeable\namounts of time when switching between activities.\n\ne.g. On of the common gmail stacks showing this pause was:\n\nandroid.os.StrictMode$StrictModeDiskWriteViolation: policy\u003d391 violation\u003d1\n  at android.os.StrictMode$AndroidBlockGuardPolicy.startHandlingViolationException(StrictMode.java:272)\n  at android.os.StrictMode$AndroidBlockGuardPolicy.onWriteToDisk(StrictMode.java:243)\n  at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:238)\n  at java.io.FileOutputStream.\u003cinit\u003e(FileOutputStream.java:97)\n  at java.io.FileOutputStream.\u003cinit\u003e(FileOutputStream.java:69)\n  at com.android.server.am.UsageStatsService.writeStatsFLOCK(UsageStatsService.java:424)\n  at com.android.server.am.UsageStatsService.writeStatsToFile(UsageStatsService.java:398)\n  at com.android.server.am.UsageStatsService.notePauseComponent(UsageStatsService.java:539)\n  at com.android.server.am.ActivityManagerService.updateUsageStats(ActivityManagerService.java:1856)\n  at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:667)\n  at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:2925)\n  at com.android.server.am.ActivityStack.requestFinishActivityLocked(ActivityStack.java:2836)\n  at com.android.server.am.ActivityManagerService.finishActivity(ActivityManagerService.java:2276)\n  at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:237)\n  at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1415)\n  at android.os.Binder.execTransact(Binder.java:320)\n  at dalvik.system.NativeStart.run(Native Method)\n\n  at android.app.ActivityManagerProxy.finishActivity(ActivityManagerNative.java:1454)\n  at android.app.Activity.finish(Activity.java:3260)\n  at android.app.Activity.onBackPressed(Activity.java:1929)\n  at android.app.Activity.onKeyUp(Activity.java:1907)\n  at android.view.KeyEvent.dispatch(KeyEvent.java:1088)\n  at android.app.Activity.dispatchKeyEvent(Activity.java:2087)\n  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1661)\n  at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2543)\n  at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2516)\n  at android.view.ViewRoot.handleMessage(ViewRoot.java:1866)\n  at android.os.Handler.dispatchMessage(Handler.java:99)\n  at android.os.Looper.loop(Looper.java:123)\n  at android.app.ActivityThread.main(ActivityThread.java:3609)\n  at java.lang.reflect.Method.invokeNative(Native Method)\n  at java.lang.reflect.Method.invoke(Method.java:521)\n  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)\n  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)\n  at dalvik.system.NativeStart.main(Native Method)\n\nChange-Id: Id49157bc635017292eaefddc5e22d73f5f4ab05e\n"
    },
    {
      "commit": "321f7fad5c4a6ef27e944dc72e2ddbfb61af81de",
      "tree": "b5bf9e4ff1df05fd412899e020fca38fac896fd0",
      "parents": [
        "3d84280ccc31d12765e2efe03e2dd3ade1acfc33"
      ],
      "author": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Mon Aug 02 20:01:01 2010 -0700"
      },
      "committer": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Tue Aug 03 11:21:55 2010 -0700"
      },
      "message": "Making sure that there is no notification when focus changes from something to nothing.\n\nChange-Id: Ib8b3bdd7f5dd999c933a017fe1b34263afe38e4a\n"
    },
    {
      "commit": "09e85dc0270ac9ce660c17ee8290ff2d136b395b",
      "tree": "1f7957006b9cb393315856ef00418733b8073266",
      "parents": [
        "d3579580df0cea7e37334d83ef7a9aa85ad70368"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 02 11:54:41 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 02 11:59:11 2010 -0700"
      },
      "message": "Mute a common-case progress log about input injection\n\nChange-Id: I37c9f5cb239ab93fde3a42f71f2782d8734c53ce\n"
    },
    {
      "commit": "8b61b68b648985df37197de204398f608c4ad8b1",
      "tree": "3060ed71f863619d629b9d3a95f7ca44a40de980",
      "parents": [
        "d2165cfce7911dac66d1195ed9123e79b086d22b",
        "6f89fa07b4105b2e0cfac87db7ce5e7c9b9feead"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jul 30 16:55:37 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 30 16:55:37 2010 -0700"
      },
      "message": "Merge \"Only install after MCS success\" into gingerbread"
    },
    {
      "commit": "6f89fa07b4105b2e0cfac87db7ce5e7c9b9feead",
      "tree": "ee8da2d3ed9867716b4f44526074b868cff3fe5d",
      "parents": [
        "7c600369c9695de73ca37db552eb81b8b89d5e76"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jul 30 16:33:47 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jul 30 16:35:04 2010 -0700"
      },
      "message": "Only install after MCS success\n\nIf MCS dies in the middle of a call during install, only proceed if the\ncall was successful. Otherwise wait for the max retries to be reached\nand run the failure handling code there.\n\nChange-Id: I00a27ea91046ea6521a3cff5e5ffe2c71b2b5bb4\n"
    },
    {
      "commit": "cb9ceb1029036363a81952d8ed5dfcbc83e6ff72",
      "tree": "20c48fd7126f64778944060ce2c2d8d4159bc36b",
      "parents": [
        "31b5d5485f7336639d252da7ba979234dbd2f1e1"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jul 29 14:29:02 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Jul 30 14:28:55 2010 -0700"
      },
      "message": "StrictMode: time violations in Binder calls\n\nChange-Id: I5796993dce98be722cf679b78acaf0c9de0ba461\n"
    },
    {
      "commit": "31b5d5485f7336639d252da7ba979234dbd2f1e1",
      "tree": "149d0d8de3a73420feac657cb8252f7ee2ce0020",
      "parents": [
        "571180c4c72e0bb4f930f8971edf000a652f10f6",
        "fb1f103191f1cf424a79aaf1cd67d2d1900138e0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 29 14:07:14 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 29 14:07:14 2010 -0700"
      },
      "message": "Merge \"Fix a bug where we cleaned an apps external data when upgrading it. :(\" into gingerbread"
    },
    {
      "commit": "fb1f103191f1cf424a79aaf1cd67d2d1900138e0",
      "tree": "764b1869ec3a254798133506c7059ac491a19bf0",
      "parents": [
        "a0ae8bc5c62b12269f20cbebdb0d8614e4e8eb1a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 29 13:57:56 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 29 13:58:32 2010 -0700"
      },
      "message": "Fix a bug where we cleaned an apps external data when upgrading it. :(\n\nChange-Id: I0eee1e7062d334c66d6daa3c43e11a292263aada\n"
    },
    {
      "commit": "6ec402b5ae33c8927694d8522b4cc6a5c8ba974e",
      "tree": "5d4b19eda9ade71d7e34635479426f1dd484e8c2",
      "parents": [
        "6dea6f4e71b53e421564d783c227cbe0a2469183"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 28 15:48:59 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 29 12:54:27 2010 -0700"
      },
      "message": "DO NOT MERGE: Fix input event injection ANRs on UI thread.\n\nAdded a new asynchronous injection mode and made the existing\nsynchronization mechanism more robust.\n\nChange-Id: Ia4aa04fd9b75ea2461a844c5b7933c831c1027e6\n"
    },
    {
      "commit": "8dc16c27e23dae5bdf65fd2a2ced97c2f645a633",
      "tree": "f13d07246db7fbaaf63550c9dd570da5677c62a0",
      "parents": [
        "a54d7d3d7dd691334189aab20d23c65710092869"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 29 11:39:55 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 29 11:39:55 2010 -0400"
      },
      "message": "Fix typo in GPS mode logic.\n\nMS-Assisted support should not be required for using MS-Based mode.\n\nChange-Id: Ia6ee219674de3e9cc13190b753f8776305a4fa90\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f369a9b5f7b2ae75875753caf90ec68fd9dbc144",
      "tree": "65ddddfda965f4d2d140fcbc365317f4307be6db",
      "parents": [
        "56c02dc3d325bab8549ec34b9d6aa7c62ef742d0"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 28 14:47:01 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 28 14:48:58 2010 -0700"
      },
      "message": "Remove stale temporary ASEC containers\n\nWhen a temporary container is created, its existence should be\nephemeral. However, if there is an error that causes system_server to be\nkilled during the process of creating a finalized ASEC, delete the stale\ncontainers on the next start-up of system_server.\n\nChange-Id: I7be8f94638a824295474c9a95960594848cb726b\n"
    },
    {
      "commit": "56c02dc3d325bab8549ec34b9d6aa7c62ef742d0",
      "tree": "b465b8f43821db74dc7c27afc2b214d882f82978",
      "parents": [
        "b1bb7180ec3446208ea717d96f6a507ea9955a13",
        "c78a8079740bfcad2e4439ccd74da52f6dc7fae2"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 28 14:48:40 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 28 14:48:40 2010 -0700"
      },
      "message": "Merge \"Fix getTempContainerId()\" into gingerbread"
    },
    {
      "commit": "c78a8079740bfcad2e4439ccd74da52f6dc7fae2",
      "tree": "32980045a8a1e809f407a9c7c9ba51d283bfd004",
      "parents": [
        "7feab3470156c7864fe159115d575c16f0974493"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jul 27 15:18:38 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 28 14:45:14 2010 -0700"
      },
      "message": "Fix getTempContainerId()\n\ngetTempContainerId() would always return \"smdl2tmp1\" unless you had\nMAX_CONTAINERS number of SD card SDKs, because of an array sort that put\nall the zeros at the beginning.\n\nSwitch from trying to find a hole in the series of numbers to just\ngetting a number that\u0027s one larger than the previous. This reduces the\nalgorithmic complexity and the memory requirements.\n\nBug: 2832580\nChange-Id: I32dc75ef5a6645f594ea47b032d7402e8860ebcd\n"
    },
    {
      "commit": "6d0fec2de3601821f4f44eeb7d7deedebb2b7117",
      "tree": "9fdea32c5691a6d0bcb3085df47f42a8e6ecd565",
      "parents": [
        "b350bec514eb9fee473e4ef62680c53e992dc49b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 23 21:28:06 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 28 14:16:15 2010 -0700"
      },
      "message": "Refactor input reader to support new device types more easily.\n\nRefactored the input reader so that each raw input protocol is handled\nby a separate subclass of the new InputMapper type.  This way, behaviors\npertaining to keyboard, trackballs, touchscreens, switches and other\ndevices are clearly distinguished for improved maintainability.\n\nAdded partial support for describing capabilities of input devices\n(incomplete and untested for now, will be fleshed out in later commits).\n\nSimplified EventHub interface somewhat since InputReader is taking over\nmore of the work.\n\nCleaned up some of the interactions between InputManager and\nWindowManagerService related to reading input state.\n\nFixed swiping finger from screen edge into display area.\n\nAdded logging of device information to \u0027dumpsys window\u0027.\n\nChange-Id: I17faffc33e3aec3a0f33f0b37e81a70609378612\n"
    },
    {
      "commit": "0c39b6c65bcb96ed6438c7d792a67708409d8f0f",
      "tree": "01bce9458ea87b0d7dbc4e55f0d72eb21f3ca56b",
      "parents": [
        "62d83a0c894b72d9abda1340d278d2aeec11e0fb",
        "84047bc295af663274ced27def33164d6e020b5d"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Jul 28 09:53:12 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 28 09:53:12 2010 -0700"
      },
      "message": "Merge \"Add a missing break; to restore old functionality and not turn off the screen after 30secs regardless of system preference.\" into gingerbread"
    },
    {
      "commit": "c40d714ca520257bcb5ef2e03e83ea3273d3a0ec",
      "tree": "87bc4979430b652177e084cda82f6708d33fff2b",
      "parents": [
        "b73045935cd8ec5d1a1c5e7a7ca800448b5789ea",
        "ac051ae7ac62532c78f820a0c7347ca36b119132"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jul 28 04:04:18 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 28 04:04:18 2010 -0700"
      },
      "message": "Merge \"Tethering: Use new ACTION_USB_STATE broadcast to monitor USB connected state\" into gingerbread"
    },
    {
      "commit": "b73045935cd8ec5d1a1c5e7a7ca800448b5789ea",
      "tree": "374ad5b9ff406fc285e7d60f5c1436f4a0fd9c00",
      "parents": [
        "9b8e5566f99c55222db4127719440272f63a5361",
        "e73eb531259126728e1d6e6b71ca65da28aaf0e0"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Jul 27 18:34:08 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 27 18:34:08 2010 -0700"
      },
      "message": "Merge \"Cap the size of StrictMode buffering we do before calling DropBox.\" into gingerbread"
    },
    {
      "commit": "e73eb531259126728e1d6e6b71ca65da28aaf0e0",
      "tree": "38447cdab530cfee887e22447531641b529de7fd",
      "parents": [
        "0166c3530535355e7813f54c4e403a21db94a9d2"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Jul 27 16:54:39 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Jul 27 16:54:39 2010 -0700"
      },
      "message": "Cap the size of StrictMode buffering we do before calling DropBox.\n\nChange-Id: I46ea767bd0153c745e9b7eff945dacf5130f8807\n"
    },
    {
      "commit": "84047bc295af663274ced27def33164d6e020b5d",
      "tree": "2b9de925d070488c5205ddedef1b135bd51f98b2",
      "parents": [
        "499bee34c40945f898b7561ca7792ded5b974852"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jul 27 16:49:10 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jul 27 16:49:10 2010 -0700"
      },
      "message": "Add a missing break; to restore old functionality and not turn off the screen after 30secs regardless of system preference.\n\nChange-Id: I6d160a1851e1f73bac3775d24cf70d46da59aa47\n"
    },
    {
      "commit": "499bee34c40945f898b7561ca7792ded5b974852",
      "tree": "64c2446094f7b298ab1c9bd353813f22786e9a38",
      "parents": [
        "76d9bf52f31b8f31f64348b736422861c90ab463",
        "c13978afe3adf26dc32766dab300cc066f372618"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Jul 27 10:22:58 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 27 10:22:58 2010 -0700"
      },
      "message": "Merge \"Remove a log message Jason doesn\u0027t like\" into gingerbread"
    },
    {
      "commit": "76d9bf52f31b8f31f64348b736422861c90ab463",
      "tree": "ab9bfa91f80d6366e575fe85103cdfcaf3bb119b",
      "parents": [
        "ca57d1cc89d65dfbd59c749c5736574cd08c7bd3",
        "8c65ee2d509db7dcb50ce4530d52eb5bdca3f917"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Jul 27 09:14:42 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 27 09:14:42 2010 -0700"
      },
      "message": "am 8c65ee2d: Merge \"Add a method to let a properly permissioned app directly manipulate the user activity timeout.  We should come up with a better API for this, but this is for a last minute power manager hack to turn off the screen sooner after a phone call ends.\" i\n\nMerge commit \u00278c65ee2d509db7dcb50ce4530d52eb5bdca3f917\u0027 into gingerbread\n\n* commit \u00278c65ee2d509db7dcb50ce4530d52eb5bdca3f917\u0027:\n  Add a method to let a properly permissioned app directly\n"
    },
    {
      "commit": "c13978afe3adf26dc32766dab300cc066f372618",
      "tree": "6654b7b0122981f3106d7fc7f85cb73ba98a1403",
      "parents": [
        "00de721859ca291d0e212a6970f0bd8b3a2f8428"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Mon Jul 26 15:32:00 2010 -0700"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Mon Jul 26 15:32:00 2010 -0700"
      },
      "message": "Remove a log message Jason doesn\u0027t like\n\nBug: 2856942\nChange-Id: Ifc5cfc076bfed0918bb203ed9c82a42092ac3939\n"
    },
    {
      "commit": "14bfa398a4e8697ce5822861a684b7d1245e4a85",
      "tree": "e931d659ad7827ebf74d66a0f5c13d949dcd2b60",
      "parents": [
        "3ac8eb7278e3603d1a35fdbd2fff540a235da2ab"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Jul 24 19:58:06 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Jul 24 20:07:17 2010 -0700"
      },
      "message": "Infrastructure to report running services to developer.\n\nChange-Id: Id1aae61323e7b8357c5fcc4bc641aaa57f3b6fde\n"
    },
    {
      "commit": "46730fc78388607fd562044cbaaa26ffc9f65337",
      "tree": "460661e109dcae2b1cae10d77cb287ac37ed6892",
      "parents": [
        "3bee5af8162c177f8c8f4199489a401058ab26a9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Jul 24 16:32:42 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Jul 24 16:34:00 2010 -0700"
      },
      "message": "Fix handling of application disabled state.\n\nChange-Id: I617b76e89eeb75437b384b92f1205bb00b15bb70\n"
    },
    {
      "commit": "7999bff154e96efb0bc9d2b89ec277f0f9ca0d2f",
      "tree": "80395cf53286425b2eea352f48a29c88635e8569",
      "parents": [
        "e8605af513e846f6cd223c9e92461189727d8c9b"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Sat Jul 24 11:50:05 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Sat Jul 24 11:50:05 2010 -0400"
      },
      "message": "Add a method to let a properly permissioned app directly\nmanipulate the user activity timeout.  We should come up\nwith a better API for this, but this is for a last minute\npower manager hack to turn off the screen sooner after a\nphone call ends.\n\nChange-Id: I76422f952e3e894c90b3311e7d889899c79cbbaa\n"
    },
    {
      "commit": "1bf797857e025e8a71db86fb9e79765a767ec1eb",
      "tree": "e8d1aabae069f2b7368be746b99667eb150363f5",
      "parents": [
        "ff7049ab2886acc73e145367118646f7741ce333"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 23:41:37 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 19 17:57:29 2010 -0700"
      },
      "message": "new SensorService\n\nremove old sensor service and implement SensorManager\non top of the new (native) SensorManger API.\n\nChange-Id: Iddb77d498755da3e11646473a44d651f12f40281\n"
    },
    {
      "commit": "f4d207b1c2212d6e9adc3e7954a8d14c6b9abc51",
      "tree": "1dc9c49461ae15e7b6787306a49c4b89f278ee62",
      "parents": [
        "eec69d2923636b2aaa51df93bacc2b3bbb742736"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Jul 17 08:21:33 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Jul 17 08:21:33 2010 -0400"
      },
      "message": "Don\u0027t throw an exception from isProviderEnabled and getLastKnownLocation\n\nif the location provider does not exist.  Instead use the same behavior\nas if the provider were disabled in settings\n(return false for isProviderEnabled and null from getLastKnownLocation).\nThis eliminates for a lot of exception handling around some simple\nqueries to the location manager.\n\nBUG: 2841014\n\nChange-Id: I4fbe0c088e915c90969e13083201dd3e7f4029cb\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "e33348ba54cd68d6936cffd4507037c14d4b10c2",
      "tree": "1429dd836a48b3f49ee2a27623ff47b5c272c827",
      "parents": [
        "bd623daff1f261a0e794f059d90ba5907eb5a89a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 15 23:54:05 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 16 00:02:48 2010 -0700"
      },
      "message": "Fix bug with phantom input windows.\n\nAdd dumpsys integration for the native input dispatcher.\nAdd some InputDevice API stubs.\nAdd an appendFormat helper method to String8 for printf style\nstring formatting mainly for debugging purposes.\nUse generic ArrayList\u003cWindowState\u003e everywhere in WindowManagerService\nto eliminate unnecessary casts all over.\n\nChange-Id: I9d1e3bd90eb7222d10620200477f11b7bfd25e44\n"
    },
    {
      "commit": "02c8730c1bf19daf48bec8c6995df676a00a73b1",
      "tree": "f4d832a5308a18272cc6be0464a9824ad1e776ec",
      "parents": [
        "c5ed5910c9ef066cec6a13bbb404ec57b1e92637"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Jul 01 08:10:18 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Jul 15 21:31:58 2010 -0700"
      },
      "message": "Add API to call to vold for mounting OBBs\n\n* Unhide StorageService class; hide all the USB-related items\n\n* Add application-visible API to StorageManager for OBB files\n\n* Add class for parceling OBB info across binders (ObbInfo)\n\n* Add a JNI glue class to libutils/ObbFile (ObbScanner)\n\n* Add API to MountService to deal with calling into vold and checking\n  permissions\n\nChange-Id: I33ecf9606b8ff535f3a2ada83931da6bbef41cfd\n"
    },
    {
      "commit": "c5ed5910c9ef066cec6a13bbb404ec57b1e92637",
      "tree": "b06dfdac2d807dae78a2634007b6e627eefd0804",
      "parents": [
        "d9452ecd0ce6c8e0518055929ba1fd0712146405"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 14 18:48:53 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 15 18:32:33 2010 -0700"
      },
      "message": "Add support for new input sources.\n\nAdded several new coordinate values to MotionEvents to capture\ntouch major/minor area, tool major/minor area and orientation.\n\nRenamed NDK input constants per convention.\n\nAdded InputDevice class in Java which will eventually provide\nuseful information about available input devices.\n\nAdded APIs for manufacturing new MotionEvent objects with multiple\npointers and all necessary coordinate data.\n\nFixed a bug in the input dispatcher where it could get stuck with\na pointer down forever.\n\nFixed a bug in the WindowManager where the input window list could\nend up containing stale removed windows.\n\nFixed a bug in the WindowManager where the input channel was being\nremoved only after the final animation transition had taken place\nwhich caused spurious WINDOW DIED log messages to be printed.\n\nChange-Id: Ie55084da319b20aad29b28a0499b8dd98bb5da68\n"
    },
    {
      "commit": "ad13b9807b3311b5375e7b8acba894528c9146a8",
      "tree": "a9eae3a4bd0b5d16f18b9053f149626f17d536d9",
      "parents": [
        "5b747191ff8ad43a54d41faf50436271d1d7fcc8"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Jul 14 12:35:53 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jul 15 13:18:05 2010 -0700"
      },
      "message": "StrictMode: batch drop box writes for system apps\n\nChange-Id: Iab49c15ecccefea1d36d86271e1ceb37d79e9449\n"
    },
    {
      "commit": "6e0f65fd9c8bea91d9143f77a85b6d9c097fb3f1",
      "tree": "9fb5ae628d20ccc348bf3b1cb05440b17132ea58",
      "parents": [
        "05940b2c04041d6b3b8d222f4acfd12faeeb6c9c"
      ],
      "author": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Wed Jul 14 14:55:33 2010 -0700"
      },
      "committer": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Wed Jul 14 15:31:39 2010 -0700"
      },
      "message": "Adding focus change notification\n\nChange-Id: I49709c97aaf63bcd44695d99c61dbbee228416f4\n"
    },
    {
      "commit": "c1ca7f8c537195b830695ca988945c9d1df0e0e4",
      "tree": "f6215a7759cfe1e22df12902ed8d07f16fecc78d",
      "parents": [
        "b8d890ebc1923d98d19d24f396442c91eb766b16",
        "dc30101ff86648c6665bf9d4579869f5badfc2f2"
      ],
      "author": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Tue Jul 13 13:10:48 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 13 13:10:48 2010 -0700"
      },
      "message": "Merge \"Making sure that the list of windows updates automatically in hierarchy viewer (View Server side)\" into gingerbread"
    },
    {
      "commit": "dc30101ff86648c6665bf9d4579869f5badfc2f2",
      "tree": "191a2ac7cb10c247451219f953897b0593e44086",
      "parents": [
        "f6120cf431804e072f34699a5d8a3fae62492cee"
      ],
      "author": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Thu Jul 08 17:55:51 2010 -0700"
      },
      "committer": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Mon Jul 12 19:37:24 2010 -0700"
      },
      "message": "Making sure that the list of windows updates automatically in hierarchy viewer (View Server side)\n\nChange-Id: I0f49ee8b6950ad167bd224093150050e19fd1dd7\n"
    },
    {
      "commit": "e059b2784fcc89c6cd43301cc6af89cf3b8101f7",
      "tree": "dc50f5660449626b863a0adc27a57a1eefcf3869",
      "parents": [
        "98738272e3b680559e1e0a7b665a0ebb4038f684"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jul 12 08:36:07 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jul 12 08:36:21 2010 -0700"
      },
      "message": "Allow things that can install packages to set Obb paths\n\nChange-Id: I19b426cb3de1a5c9285badf8aea59989568914b4\n"
    },
    {
      "commit": "a5402dabec84eabcdb9008dc343dd67de325bbac",
      "tree": "317d86ec886b3308e3068631c01c085d91e9089a",
      "parents": [
        "c9535de8e398d766c95144f9a831f34b2cecfd91",
        "93565c4b3265c16aee4a82d7556f811776c17db8"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 07 18:14:25 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 07 18:14:25 2010 -0700"
      },
      "message": "Merge \"OBB API for PackageManager\" into gingerbread"
    },
    {
      "commit": "93565c4b3265c16aee4a82d7556f811776c17db8",
      "tree": "1b6802fea6d067d97410d67d6665721ea23fb327",
      "parents": [
        "7cee34a051eb0087322c8b965e498f88b1aa52d3"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jun 18 15:46:06 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 07 09:57:51 2010 -0700"
      },
      "message": "OBB API for PackageManager\n\nSimple API for tracking .obb files associated with packages. Stores the\npath in the PackageSettings. No verification of file content is done\nnow since the PackageManagerService can\u0027t read the SD card where these\nfiles will likely live.\n\nChange-Id: Ibeaf26ba0526b6d60f401137e58f46ee9faff39e\n"
    },
    {
      "commit": "00fa7bdd69f0868fd17ea7c881c771d785b2fbbd",
      "tree": "6fff8ad404e57af316c6ce5a20020dc209eb3cc6",
      "parents": [
        "8ecfb60a8e74dfcd51bbf3f236d5f414a4d5ac7d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 02 15:37:36 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Jul 03 19:23:01 2010 -0700"
      },
      "message": "More native input dispatch work.\n\nRemoved old input dispatch code.\nRefactored the policy callbacks.\nPushed a tiny bit of the power manager state down to native.\nFixed long press on MENU.\nMade the virtual key detection and cancelation a bit more precise.\n\nChange-Id: I5d8c1062f7ea0ab3b54c6fadb058c4d5f5a9e02e\n"
    },
    {
      "commit": "160edb3645f8b7012bab70ae6e6e8c4a5733082b",
      "tree": "ea193da79f99a54b59d3a937c5160a8cdf3f8666",
      "parents": [
        "c6e1d88022db800773401c16803e1ab27fd01a7e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 30 17:46:30 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 30 18:25:01 2010 -0700"
      },
      "message": "Add ability to guard a thread against setting its own prio to bg\n\nThe guard is compiled out by default because it adds overhead to\nandroid.os.Process.setPriority().\n\nChange-Id: Ibb2a648c6349b381abb7ae62a358888b04fba871\n"
    },
    {
      "commit": "c27181c7f3e11170ec82807cfa416f0a906ff574",
      "tree": "089629b0589d33c89dfd8289a892b11107d849e5",
      "parents": [
        "5d7f6e614e7ead1fbe40a6886f78c31809bcbd40"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 30 14:41:09 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 30 14:53:39 2010 -0700"
      },
      "message": "Remove memory monitoring from the system watchdog\n\nThis was originally written as an in-case-we-need-it facility, but was\nnever actually used in production.  It also soaked up a surprising amount\nof cpu on occasion, as well as doing sketchy things like demoting the\nsystem_server\u0027s primary looper thread to the background cgroup at times.\n\nChange-Id: I9a81a8d1e9caea9e0a1277d97785fe96add438d7\n"
    },
    {
      "commit": "de6bd120c97bb7986a6bac3889288f77bca63288",
      "tree": "78599db2c04f09d34312b19bf2a8fdb51715ada6",
      "parents": [
        "606d591afee24e31e3885a7330638893db1710f5",
        "ff2544c6cb9919a9f591350380becdd3d1cbad2c"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jun 29 05:24:45 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 29 05:24:45 2010 -0700"
      },
      "message": "Merge \"Notifications: Use new ACTION_USB_STATE broadcast to monitor USB connected state\" into gingerbread"
    },
    {
      "commit": "606d591afee24e31e3885a7330638893db1710f5",
      "tree": "b12a3e4389d050b20a943156a6e289f1840a9caf",
      "parents": [
        "f0562b4b071b74a760ad9c9caa0e41687ae6f407",
        "709981eeedc5c6d640fbb3ecc1ebdcd39d748802"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jun 29 05:24:22 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 29 05:24:22 2010 -0700"
      },
      "message": "Merge \"Add new Usb.ACTION_USB_STATE sticky broadcast for monitoring USB connect state\" into gingerbread"
    },
    {
      "commit": "349703effce5acc53ed96f7ed8556131f0c65e18",
      "tree": "359217d5076e3005c724b2117a59ffec81e7a83b",
      "parents": [
        "f2b544f5ae7676f7ab4cdf3379b2ed3c60a65def"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jun 22 01:27:15 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 28 19:10:54 2010 -0700"
      },
      "message": "Native input event dispatching.\n\nTarget identification is now fully native.\nFixed a couple of minor issues related to input injection.\nNative input enabled by default, can be disabled by setting\nWindowManagerPolicy.ENABLE_NATIVE_INPUT_DISPATCH to false.\n\nChange-Id: I7edf66ed3e987cc9306ad4743ac57a116af452ff\n"
    },
    {
      "commit": "ac051ae7ac62532c78f820a0c7347ca36b119132",
      "tree": "28bee9c54ccf0c5cf23acf7f4aad0409fa2e7736",
      "parents": [
        "ff2544c6cb9919a9f591350380becdd3d1cbad2c"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jun 28 09:19:04 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jun 28 16:38:33 2010 -0400"
      },
      "message": "Tethering: Use new ACTION_USB_STATE broadcast to monitor USB connected state\n\nReplaces use of battery status, which will not work on devices that do not\ncharge over USB.\n\nChange-Id: I1e123bb534d46b890461ddfdee24f81da5798756\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "ff2544c6cb9919a9f591350380becdd3d1cbad2c",
      "tree": "75bc1469db4a470710e707ccb0fed6b9c6c0fb30",
      "parents": [
        "709981eeedc5c6d640fbb3ecc1ebdcd39d748802"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jun 28 09:17:50 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jun 28 10:03:17 2010 -0400"
      },
      "message": "Notifications: Use new ACTION_USB_STATE broadcast to monitor USB connected state\n\nReplaces use of UMS notifications, which will not work on devices without\nUSB mass storage support.\n\nChange-Id: I2ea7f4d2dead91418935e97e2f442f5e3fc5e6dc\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "709981eeedc5c6d640fbb3ecc1ebdcd39d748802",
      "tree": "8e125496081b8e09fac66abcdf62ae08470bc00e",
      "parents": [
        "9005e7f4297a3f04263e81cb61ba2703d5667b0a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jun 28 09:58:58 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jun 28 10:02:05 2010 -0400"
      },
      "message": "Add new Usb.ACTION_USB_STATE sticky broadcast for monitoring USB connect state\n\nThis can be used instead of ACTION_USB_CONNECTED and ACTION_USB_DISCONNECTED\nby clients that need to be informed of both USB connect and disconnect events\n\nChange-Id: Ic26927af2e775c2694d18775f9d574c97b095dfd\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "9005e7f4297a3f04263e81cb61ba2703d5667b0a",
      "tree": "2bb30c671289d492ac7e1bc1ed38f6fb1c856fd8",
      "parents": [
        "41debbc613ec57aa892f604229df376402942687",
        "17b232b5b59ab91ab543b87e849583678a000f9b"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Jun 25 19:49:58 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 25 19:49:58 2010 -0700"
      },
      "message": "Merge \"Add setWifiApConfiguration interface\" into gingerbread"
    },
    {
      "commit": "50dc3bca5afbce911636b3ba15ee953bc203a9d6",
      "tree": "a4ae9bb5869fbd1cf74100625231239eff67b634",
      "parents": [
        "8e103da1f1b0656e3427b34b75f02d7ddf6073d5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 25 10:05:59 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 25 13:07:21 2010 -0700"
      },
      "message": "Refactor ActivityManagerService activity stack.\n\nIntrodude a new ActivityStack class that holds all of the\nstate and management of a stack of activities.  Paves the way\nfor having multiple activity stacks, though at this point\nthere should be no change in functionality and the activity\nmanager is still assuming there is only one stack.\n\nChange-Id: Iea4859a24c9269061043755ec58a615028d4183b\n"
    },
    {
      "commit": "17b232b5b59ab91ab543b87e849583678a000f9b",
      "tree": "6aba5821c972c1a43411b06068d246924949b594",
      "parents": [
        "7fd22aab4506f65b7929ed1030bdd71c56f7db77"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Jun 24 11:32:26 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Jun 24 20:03:38 2010 -0700"
      },
      "message": "Add setWifiApConfiguration interface\n\nBug: 2538623\nChange-Id: I779044173a2fa0e9b851ea92aeec5ca25eb9c86f\n"
    },
    {
      "commit": "2529a45339b7e02d9d2b813358bcecd144a971ea",
      "tree": "469f9a4dbf08b9feee2e3848c15c137d4d1d6c0e",
      "parents": [
        "5340bffd8bb2599d15ee79cca3c62d2e7c7ea961",
        "9d39d0cb361c5d3bba04a6bacf299be2162a6e92"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 17:28:13 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 24 17:28:13 2010 -0700"
      },
      "message": "Merge \"Make bad notifications crash their application.\" into gingerbread"
    },
    {
      "commit": "9d39d0cb361c5d3bba04a6bacf299be2162a6e92",
      "tree": "3e08cfc2e7b5e1fabc21d2c0c9184531da78d41a",
      "parents": [
        "01e4cfc47d0a2c7e7ab383d2fb23224ec52c0301"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 15:57:42 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 17:27:28 2010 -0700"
      },
      "message": "Make bad notifications crash their application.\n\nImplement notification manager handling of bad notifications, to\ncall a new activity manager to have the owner\u0027s process crashed\n(if there is one).\n\nChange-Id: Ib15e8d0c598756f3b39c99cc2045c18e054daf6b\n"
    },
    {
      "commit": "5340bffd8bb2599d15ee79cca3c62d2e7c7ea961",
      "tree": "096582a2a1cf7e1615296ac4e020d9e28dfe8ecb",
      "parents": [
        "01e4cfc47d0a2c7e7ab383d2fb23224ec52c0301",
        "5827d3eaf3c53d1dc3ab0d638d935c219a5515a6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 16:01:39 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 24 16:01:39 2010 -0700"
      },
      "message": "am 5827d3ea: Merge \"Properly note the current active restore set\\\u0027s token\" into froyo\n\nMerge commit \u00275827d3eaf3c53d1dc3ab0d638d935c219a5515a6\u0027 into gingerbread\n\n* commit \u00275827d3eaf3c53d1dc3ab0d638d935c219a5515a6\u0027:\n  Properly note the current active restore set\u0027s token\n"
    },
    {
      "commit": "2950555aac546cd95b7ae268b5851895e1289ec2",
      "tree": "7850e469209374754bb170768fa3af0679f55c3a",
      "parents": [
        "753e56090ed5acc0d2173a8e9ab1a9b96528720b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 24 15:58:01 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 24 15:58:01 2010 -0700"
      },
      "message": "Properly note the current active restore set\u0027s token\n\nBug: 2796780\nChange-Id: Iad601ed96ae73cf34910a276350712e6af19bb4e\n"
    },
    {
      "commit": "01e4cfc47d0a2c7e7ab383d2fb23224ec52c0301",
      "tree": "1ea8a7e26b691d9d2150e9ddbd19b04be9b8d5d3",
      "parents": [
        "7b5b27ada12d3680dec20274fa655fd7f73f839e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 15:07:24 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 15:20:48 2010 -0700"
      },
      "message": "Some ActivityThread/ActivityManager cleanup.\n\n- Move PackageInfo out of ActivityThread, renaming to LoadedApk.\n- Rename some of the other PacakgeInfo inner classes to better\n  represent what they are.\n- Rename HistoryRecord to ActivityRecord.\n- Introduce AppGlobals, to eventually let ActivityThread become\n  package scoped.\n\nChange-Id: Ib714c54ceb3cdbb525dce3db9505f31042e88cf0\n"
    },
    {
      "commit": "baf42c625c3ef4cb7b732956a97953efd93b23bc",
      "tree": "42065f9b14d2bc9a5c123625b7248c5ee27387f3",
      "parents": [
        "7fd22aab4506f65b7929ed1030bdd71c56f7db77"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 11:23:39 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 24 11:38:47 2010 -0700"
      },
      "message": "Add APIs for finding heavy-weight apps.\n\nChange-Id: I6c865cce404cac1a08eee056f963de5d276d5898\n"
    },
    {
      "commit": "2423607a32d63a0c646b17758ebeb4dc1d0b791f",
      "tree": "b5e3f4b314005fc207c4e25eeca0cf83bec080eb",
      "parents": [
        "9163d42a50076c2a77694ff394363264d862c7bf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jun 23 17:36:36 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 24 09:36:50 2010 -0400"
      },
      "message": "Add a new UEventObserver subclass to broadcast an Intent whe USB state changes.\n\nWe now broadcast Usb.ACTION_USB_CONNECTED and Usb.ACTION_USB_DISCONNECTED\nwhen USB is connected or disconnected.\nThe ACTION_USB_CONNECTED extras indicate the enabled/disabled state of\nall USB functions.\n\nChange-Id: I11495d039429dbe22bd738067296e39ae415befa\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "4ca092c7f101cbd95833a9ed8936e9e0485585ad",
      "tree": "21b5462c44b0ea20d61b3db2286a8548456f04bb",
      "parents": [
        "9afc1b3ed3eb8dbfb440600495d92def88934f54",
        "a8a8a42f8570bdbe66a09fc278564e7a549158da"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 23 16:08:06 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 23 16:08:06 2010 -0700"
      },
      "message": "Merge \"Fix bug 2772728 with the suggested fix.  I wasn\u0027t able to reproduce it though.\" into gingerbread"
    },
    {
      "commit": "69a4817e3e1e368e758ff8c238deb5ee26963c04",
      "tree": "3eaed1f053b09daabf84854acb3155216543a102",
      "parents": [
        "efbe2d78ee5e26b6606c8552a5c1ac70749a5013"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jun 23 16:29:36 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jun 23 16:29:36 2010 -0400"
      },
      "message": "Immersive activity API.\n\nAn Activity can declare itself to be \"immersive\" either by\nsetting android:immersive\u003d\"true\" in AndroidManifest or by\ncalling setImmersive(true).\n\nImmersive activities \"should\" not be interrupted, for\nexample by Notifications with an associated\nfullScreenIntent. (In the future we may even prevent any\nnon-system application from successfully calling\nstartActivity() if the foreground activity is immersive.)\nNotifications with FLAG_HIGH_PRIORITY set will be shown to\nthe user in some less-obtrusive way if the frontmost\nactivity is immersive.\n\nChange-Id: I8d0c25cc4e22371c27cbf2bb6372d2c95d57b2d7\n"
    },
    {
      "commit": "f602d362ba4bb3adbf1eb4e38a794fb14274293a",
      "tree": "d2b5da88fbc52e10a2c9b09f9027b32c539c5022",
      "parents": [
        "07ccf5ad7edfeeebb79208ad3e8a52917fe038a8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Jun 20 14:28:16 2010 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jun 22 09:26:41 2010 -0400"
      },
      "message": "GPS: remove GpsEventThread from GpsLocationProvider\n\nRather than polling for events from the native code in an event thread,\nwe now require the GPS HAL libraries to call our callbacks from a thread\nthat is registered with the JVM to call directly into Java.\nThis eliminates a thread from our code and removes one step in the chain\nof message passing from the GPS to the Location Manager client.\n\nChange-Id: I2745a157690310ba9a699a8369f54a7366c6b1ba\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "7fbdc84e87dd3a0e196b9803bb04495d11e9cb8a",
      "tree": "32691f639ef71365b602795db215f11f457397a5",
      "parents": [
        "e47e3f3855a062ba0338a57eeda2f12a0f7a1fa8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jun 17 20:52:56 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 21 13:59:34 2010 -0700"
      },
      "message": "More native input event dispatching.\n\nAdded ANRs handling.\nAdded event injection.\nFixed a NPE ActivityManagerServer writing ANRs to the drop box.\nFixed HOME key interception.\nFixed trackball reporting.\nFixed pointer rotation in landscape mode.\n\nChange-Id: I50340f559f22899ab924e220a78119ffc79469b7\n"
    },
    {
      "commit": "04b243d0f5470cfaf67cce5534f9a9fb2e30855c",
      "tree": "caf2945f0ce02c78066b9e46df5cd7619b628776",
      "parents": [
        "a2650db770e93a9424d6d6948fd31f943f6dac49"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Jun 21 08:01:13 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Jun 21 08:01:13 2010 -0700"
      },
      "message": "Fix NPE during ANRs.\n\nBUG\u003d2780838\n\nChange-Id: I0d5e9a2323130ca14d1f0df684c8abe4f4dad05a\n"
    },
    {
      "commit": "801700b1a2b3b5d3cf4264b62d8a776996bda4ca",
      "tree": "071ed20e470e49ca243613dbf3e5954a8b3e0117",
      "parents": [
        "7f0a1f62c63a91eab3bd21c65fa978c1b14650be",
        "57f4503e1a129d6a648f2378d36a060998a577a0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 17 18:43:31 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 17 18:43:31 2010 -0700"
      },
      "message": "am 57f4503e: Work on issue # 2778549: Idle FRF72 is awake 18 mins more than ERE27 in 13hr test\n\nMerge commit \u002757f4503e1a129d6a648f2378d36a060998a577a0\u0027 into gingerbread\n\n* commit \u002757f4503e1a129d6a648f2378d36a060998a577a0\u0027:\n  Work on issue # 2778549: Idle FRF72 is awake 18 mins more than ERE27 in 13hr test\n"
    },
    {
      "commit": "57f4503e1a129d6a648f2378d36a060998a577a0",
      "tree": "bed5bf809f503f0a2b1061b92c31f26b445ab5ec",
      "parents": [
        "5f11e95f0041e163e8aa9e429aec92c8ee942233"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 17 15:49:33 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 17 15:49:33 2010 -0700"
      },
      "message": "Work on issue # 2778549: Idle FRF72 is awake 18 mins more than ERE27 in 13hr test\n\nModify UIModeManager to not get location updates every thirty minutes.\nInstead it gets one once a day, and requests a new update when airplane\nmode is turned off or the time zone changes.\n\nChange-Id: I8044c27b5cd77709e4b872e2e8edd352f23e4af1\n"
    },
    {
      "commit": "6b7b4845212b3a439c527f2e1eca205b6b45fceb",
      "tree": "1ba505965236caa85362b440aa852f5b8aae0df5",
      "parents": [
        "c95812e6cacaa14748c81323bac6561453991a24"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 14 17:17:44 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 16 18:31:42 2010 -0700"
      },
      "message": "Various improvements to battery stats collection\n\nWe now clear the battery stats when unplugging after the\nbattery is full.  This allows us to use the \"total\" stats as\na new \"since last charged\" stat.  Total is gone.  I never used\nit, it was worthless.  Since last charged is a lot more\ninteresting.\n\nThe battery history now collects a lot more stats, and keeps\ncontrol over how much it can collect.  Printing is now more\ndescriptive.\n\nThe kinds of stats have been renamed to SINCE_UNPLUGGED and\nSINCE_DISCHARGED.  The other two stats are still there, but\nno longer printed; a future change will eliminate them\ncompletely along with all of their state.\n\nChange-Id: I4e9fcfcf8c30510092c76a8594f6021e9502fbc1\n"
    },
    {
      "commit": "a8a8a42f8570bdbe66a09fc278564e7a549158da",
      "tree": "a297b3d5ae6b35b8665164c35f5f9c4c4d36e778",
      "parents": [
        "92266a7894becc1cdf2298fd02380749ab036131"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 16 15:06:16 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 16 15:06:16 2010 -0400"
      },
      "message": "Fix bug 2772728 with the suggested fix.  I wasn\u0027t able to reproduce it though.\n\nChange-Id: Ic3e3a7c679a74b822a3567faeb353950af3cfbca\n"
    },
    {
      "commit": "143666f0ca28f0e3e6597e5025078f0449ca6abe",
      "tree": "03944ebfa885d9970c13ba5a912731ddc1eaee76",
      "parents": [
        "f1cefa916712dafc8b47f6eb8132a688892d4995"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Jun 14 12:40:21 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Jun 14 13:38:01 2010 -0700"
      },
      "message": "StrictMode: implement the log-to-DropBox option\n\nChange-Id: I51d12e264155078f953028241f8c5cbdc47262e8\n"
    },
    {
      "commit": "7c8aa44f320f45e8417f0aba9ca67af6a67a5cf7",
      "tree": "2d547d9d8ddc5b08310070121616294d92ebca70",
      "parents": [
        "94f14aeca9e6c6d07b39a7f708eacadcfeb6fbd2",
        "46b9ac0ae2162309774a7478cd9d4e578747bfc2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 13 17:55:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jun 13 17:55:28 2010 -0700"
      },
      "message": "am 46b9ac0a: Native input dispatch rewrite work in progress.\n\nMerge commit \u002746b9ac0ae2162309774a7478cd9d4e578747bfc2\u0027 into gingerbread\n\n* commit \u002746b9ac0ae2162309774a7478cd9d4e578747bfc2\u0027:\n  Native input dispatch rewrite work in progress.\n"
    },
    {
      "commit": "46b9ac0ae2162309774a7478cd9d4e578747bfc2",
      "tree": "46ad021a41e25ca9f1250b709a29b724dc6b504d",
      "parents": [
        "f62c57d684b83df7d2817db976c0afdb500ae92a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 22 18:58:52 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 13 17:42:16 2010 -0700"
      },
      "message": "Native input dispatch rewrite work in progress.\n\nThe old dispatch mechanism has been left in place and continues to\nbe used by default for now.  To enable native input dispatch,\nedit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.\n\nIncludes part of the new input event NDK API.  Some details TBD.\n\nTo wire up input dispatch, as the ViewRoot adds a window to the\nwindow session it receives an InputChannel object as an output\nargument.  The InputChannel encapsulates the file descriptors for a\nshared memory region and two pipe end-points.  The ViewRoot then\nprovides the InputChannel to the InputQueue.  Behind the\nscenes, InputQueue simply attaches handlers to the native PollLoop object\nthat underlies the MessageQueue.  This way MessageQueue doesn\u0027t need\nto know anything about input dispatch per-se, it just exposes (in native\ncode) a PollLoop that other components can use to monitor file descriptor\nstate changes.\n\nThere can be zero or more targets for any given input event.  Each\ninput target is specified by its input channel and some parameters\nincluding flags, an X/Y coordinate offset, and the dispatch timeout.\nAn input target can request either synchronous dispatch (for foreground apps)\nor asynchronous dispatch (fire-and-forget for wallpapers and \"outside\"\ntargets).  Currently, finding the appropriate input targets for an event\nrequires a call back into the WindowManagerServer from native code.\nIn the future this will be refactored to avoid most of these callbacks\nexcept as required to handle pending focus transitions.\n\nEnd-to-end event dispatch mostly works!\n\nTo do: event injection, rate limiting, ANRs, testing, optimization, etc.\n\nChange-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25\n"
    },
    {
      "commit": "46d42387464a651268648659e91d022566d4844c",
      "tree": "1252f3113aea8f95506bc0860b461fe3737c45c7",
      "parents": [
        "126ca6f9ecab6f912ea9f4f00af35c410aae504b"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Jun 11 13:57:58 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Jun 11 16:11:26 2010 -0700"
      },
      "message": "More StrictMode work, handling violations in ActivityManagerService.\n\nAlso starts to do duplicate-suppression.\n\nChange-Id: I0502f6ab6c45fa319298de4874ecfe44b7829d21\n"
    },
    {
      "commit": "afadc8b4e15d94b6a4ac7dc8ad3cdcde45836f45",
      "tree": "e6eb7beaa93a2b2c2108cbea74e400e1a3a50f44",
      "parents": [
        "9f8cc518e14c7a34bc52da712afbf02d84585f67"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Jun 11 14:43:14 2010 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Jun 11 14:43:14 2010 -0700"
      },
      "message": "Dont persist config on failure\n\nIf soft AP bring up does not go through successfully,\ndont persist the config. This has the benefit of recovering\nfrom the case where things fail on \"\u003d\" and \",\" for SSID since\nthe IOCTL parsing in driver on broadcom cannot handle it\nat this time.\n\nChange-Id: Iaa60fd05972db434500753dcb59092995dab07b1\n"
    },
    {
      "commit": "32907cfb38bda2d3c052cf5139c5b592678fedbb",
      "tree": "78b2cb1f1ec2897628531bad2be0c90ecc53468f",
      "parents": [
        "e577e87a2d80890190f14edc4a5caf70d7c566bf"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 10 17:50:20 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 11 10:39:11 2010 -0700"
      },
      "message": "Adjust activity manager process OOM adj.\n\nModify OOM adj classes a bit, to take into account the new\nheavy weight app type, and give \"foreground services\" their\nown category to have a bettery chance to manager them when\nthings go wrong.\n\nAlso add some new code to battery stats to keep a history\nof changes to the battery level.\n\nChange-Id: I29f5ab6938777e1a7eafd7d8c38b5e564cc9f96a\n"
    },
    {
      "commit": "4001120e456e51dd498c6647460dd97d946dc816",
      "tree": "8050c4de42354eb54a6c8910c46e56813ea9285c",
      "parents": [
        "4d61f602bf67fe61256c23f090d6119992ad5160",
        "f4a502a235e9f9ea0bcd2d5ca4981dc6e1a619c4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 10 15:30:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 10 15:30:41 2010 -0700"
      },
      "message": "am f4a502a2: Merge \"Don\\\u0027t adjust lights if screen or button brightness is changed when the screen is off.\" into froyo\n\nMerge commit \u0027f4a502a235e9f9ea0bcd2d5ca4981dc6e1a619c4\u0027 into kraken\n\n* commit \u0027f4a502a235e9f9ea0bcd2d5ca4981dc6e1a619c4\u0027:\n  Don\u0027t adjust lights if screen or button brightness is changed when the screen is off.\n"
    },
    {
      "commit": "f4a502a235e9f9ea0bcd2d5ca4981dc6e1a619c4",
      "tree": "71d62a9ed67b2f129cc29d152ebfcf99c3b2ae7d",
      "parents": [
        "8f2ca788f369892370477212cf9e7a67721a8c16",
        "f527c715d7065d8cf6943c37dd5e721bd7a805cd"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 10 15:28:31 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 10 15:28:31 2010 -0700"
      },
      "message": "Merge \"Don\u0027t adjust lights if screen or button brightness is changed when the screen is off.\" into froyo"
    },
    {
      "commit": "438d0595121a7a2cdf19741e76e3c0e21a5c173d",
      "tree": "d4a76171b2eb52c472c2900eb6947ff073bed81a",
      "parents": [
        "8f1bfb001b522a370a65c8e4545183b7611f672b"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jun 10 12:19:19 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jun 10 14:38:58 2010 -0700"
      },
      "message": "Introduce \"StrictMode\"\n\nThis is a new public API for developers to opt-in to strict rules\nabout what they\u0027re allowed to do on certain threads.  (this is the\npublic face of the @hide dalvik.system.BlockGuard, added recently...)\n\nIn practice this will be used for developers to opt-in to declaring\nthat they don\u0027t want to be allowed to do various operations (such as\ndisk I/O or network operations) on their main UI threads.  (these\noperations are often accidental, or even when they are fast come with\na good chance of being slow or very slow in some cases....)\n\nImplementation wise, this is just a thread-local integer that has a\nbitmask of the things that aren\u0027t allowed, and more bits for saying\nwhat the violation penalty is.  The penalties, of which multiple can\nbe chosen, include:\n\n  * logging\n  * dropbox uploading for analysis/reporting\n  * annoying dialog\n  * full-on crashing\n\nThese are all only very roughly implemented at this point, but all\nparts now minimally work end-to-end now, so this is a good checkpoint\ncommit before this gets too large.\n\nFuture CLs will polish all the above 4 penalties, including\nchecksumming of stacktraces and minimizing penalties for duplicate\nviolations.\n\nChange-Id: Icbe61a2e950119519e7364030b10c3c28d243abe\n"
    },
    {
      "commit": "8f1bfb001b522a370a65c8e4545183b7611f672b",
      "tree": "d6f61406df1a090fe5f7786d3e52f26df95dcc0d",
      "parents": [
        "8d3002806593f090ee570c04e4620b90df4d5c8b",
        "8f2ca788f369892370477212cf9e7a67721a8c16"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Jun 10 14:13:51 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 10 14:13:51 2010 -0700"
      },
      "message": "am 8f2ca788: Merge \"Fix bug 2757693 - Multi-touch coordinates can jump when a finger goes down.\" into froyo\n\nMerge commit \u00278f2ca788f369892370477212cf9e7a67721a8c16\u0027 into kraken\n\n* commit \u00278f2ca788f369892370477212cf9e7a67721a8c16\u0027:\n  Fix bug 2757693 - Multi-touch coordinates can jump when a finger goes down.\n"
    },
    {
      "commit": "8f2ca788f369892370477212cf9e7a67721a8c16",
      "tree": "4111ae09406799e0a0c20727a29825bebbf70dc3",
      "parents": [
        "a2c6d5bf308181c019ade0aac6d25fe33dc3d76c",
        "5cd88cfd239bc61a4327e2a13747b4590890d838"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Jun 10 14:09:50 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 10 14:09:50 2010 -0700"
      },
      "message": "Merge \"Fix bug 2757693 - Multi-touch coordinates can jump when a finger goes down.\" into froyo"
    },
    {
      "commit": "f527c715d7065d8cf6943c37dd5e721bd7a805cd",
      "tree": "6b5d282e3bf5bdc3cfd36f5d1eebd1b9012332d9",
      "parents": [
        "71d73a0dfc110d0bdfc1b7ba385db3e2cfe007e5"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 10 14:12:33 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 10 14:14:00 2010 -0400"
      },
      "message": "Don\u0027t adjust lights if screen or button brightness is changed when the screen is off.\n\nChange-Id: I798a240374c3a739e1f1eaf36fa9fdef8416f2a2\nBUG: 2758292\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    }
  ],
  "next": "a2c6d5bf308181c019ade0aac6d25fe33dc3d76c"
}
