)]}'
{
  "log": [
    {
      "commit": "3b3e145d3c41fd68974e08f799b1fd1f8f060cf0",
      "tree": "3f699e0b2f51bfce7061ef87b2690c8ab1032a64",
      "parents": [
        "fdf53a4628f915203752660aa07049aa22c01b5a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 24 19:22:12 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 25 00:48:02 2009 -0700"
      },
      "message": "A variety of work on animations.\n\n- The lock screen now fades in and out.\n- Fixed a bug where we would accidentally freeze the screen when switching\n  to an activity with a different orientation than the current (but\n  the screen itself is in the current orientation).  This would mess up\n  the animations on the car dock.\n- New API to force a particular animation for an activity transition\n  (untested).\n- New wallpaper animations.\n- Resources now uses the next API version when in a development build,\n  to help applications being developed against such builds.\n\nChange-Id: I2d9998f8400967ff09a04d693dc4ce55f0dbef5b\n"
    },
    {
      "commit": "fdf53a4628f915203752660aa07049aa22c01b5a",
      "tree": "1468794275b09abab955f794ecfd48bc8dc24701",
      "parents": [
        "80d8ace484525f0272b8a56142ef838f5f4d38e4",
        "432b713c9442a4c0e1e4d400fada0c44dc17e786"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 25 00:45:23 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 25 00:45:23 2009 -0400"
      },
      "message": "Merge change 26935 into eclair\n\n* changes:\n  Fix bug 2129190 The context used by the status bar (i.e., the system context) was not properly initialized to have the right ApplicationInfo inside its PackageInfo. This eventually caused it to believe that it was running at 160dpi.\n"
    },
    {
      "commit": "432b713c9442a4c0e1e4d400fada0c44dc17e786",
      "tree": "beee7d5e9d7c71e58950e715ebe51a350ed482c9",
      "parents": [
        "cc89ef3d6e9b1f9be657c9158ad04b8de104434c"
      ],
      "author": {
        "name": "Mike Cleron",
        "email": "mcleron@google.com",
        "time": "Thu Sep 24 15:28:29 2009 -0700"
      },
      "committer": {
        "name": "Mike Cleron",
        "email": "mcleron@google.com",
        "time": "Thu Sep 24 21:41:19 2009 -0700"
      },
      "message": "Fix bug 2129190\nThe context used by the status bar (i.e., the system context) was\nnot properly initialized to have the right ApplicationInfo inside\nits PackageInfo. This eventually caused it to believe that it\nwas running at 160dpi.\n\nKudos to Dianne for figuring this out.\n"
    },
    {
      "commit": "21ab6a5bdb791c138f284442cdac9e73ca6c5c11",
      "tree": "5799cbcdf7325750f565e456cc26c5901dc30159",
      "parents": [
        "d35db5ec8bd5ef07840fa84318284df04a69411c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Thu Sep 24 18:01:46 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Thu Sep 24 19:54:46 2009 -0700"
      },
      "message": "Disallow concurrent backups; consult transport requestBackupTime()\n\n* We now check for in-progress backups when asked to perform one, and don\u0027t\n  bother firing off another one concurrently (nor do we adjust the scheduling;\n  after all, someone asked to do a backup \"now\" and we\u0027re doing one, so we are\n  in line with expectations).  We also defer backup passes while a restore is\n  in flight, and abort attempts to perform a restore during a backup pass.\n\n* When a backup attempt fails, we now ask the transport how far in the future we\n  should put our retry.  Previously we were simply not bothering to consult with\n  the transport, so we would wind up retrying backup while network connectivity\n  was known to be down, etc.\n\nChange-Id: Ic7758010b74e06e90c50d46b7b0dd01b17af7c90\n"
    },
    {
      "commit": "4cc86e1ae80eb1938500fe5fa06bbdf8b4b7b50d",
      "tree": "29e86fea79bb021db76dda017ec3d4c72d437349",
      "parents": [
        "bb339eadcb4a3ffd2dc861ffb0f268a49238fd03"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Mon Sep 21 19:36:51 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Thu Sep 24 11:19:04 2009 -0700"
      },
      "message": "Clear the device\u0027s data from the transport when backup is disabled\n\nTurning off backup in the Settings UI constitutes an opt-out of the whole\nmechanism.  For privacy reasons we instruct the backend to wipe all of the data\nbelonging to this device when the user does this.  If the attempt fails it is\nrescheduled in the future based on the transport\u0027s requestBackupTime()\nsuggestion.  If network connectivity changes prompt the transport to indicate a\nbackup pass is appropriate \"now,\" any pending init operation is processed before\nthe backup schedule is resumed.\n\nThe broadcasts used internally to the backup manager are now fully protected;\nthird party apps can neither send nor receive them.\n\n(Also a minor logging change; don\u0027t log \u0027appropriate\u0027 EOF encountered during\nparsing of a backup data stream.)\n"
    },
    {
      "commit": "ffa424800d0338b8b894aef2ea1e3e3344cbda7a",
      "tree": "93a2e14b145042fe8fdd9fccef26303c55341272",
      "parents": [
        "f11cc96ee837f8b0d530f3a5dd78ffc358727411"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 23 22:20:11 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 23 23:17:07 2009 -0700"
      },
      "message": "Fix issue #2133206: dialogs/menus should auto-dismiss when screen turns off\n\nLot of infrastructure for more things to go away when \"clear system dialogs\"\nhappens, and now do this when we turn on the lock screen.\n\nChange-Id: I567130296fe47ce82df065ed58ef21b37416ceaf\n"
    },
    {
      "commit": "ce60514221f2a143a0f85a1c63637d674eaa3d58",
      "tree": "ded9397a08046be5f4eeab37d9739814ed435df3",
      "parents": [
        "6e35b50e8d77ff16ffbcac88f421c7091d1c9b8c",
        "5baba1698964194daa02d30d4dd93807b08c9379"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 23 20:04:44 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 23 20:04:44 2009 -0400"
      },
      "message": "Merge change 26717 into eclair\n\n* changes:\n  Newer animations.\n"
    },
    {
      "commit": "5baba1698964194daa02d30d4dd93807b08c9379",
      "tree": "9460d27cd91d3b0a8e46aee4bd999726ef139836",
      "parents": [
        "a52b4d764ebd79b29eac296a5c3a629cff1990c4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 23 17:01:12 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 23 17:03:41 2009 -0700"
      },
      "message": "Newer animations.\n\nChange-Id: I1bb8e52f91dc60a6ec9496e2c66623bc8080b95d\n"
    },
    {
      "commit": "e21167a9e5978f167fa6e8d26bbb2986b6609372",
      "tree": "55c886cb0a734db8ce3d78dc0b93aa9b59247a0d",
      "parents": [
        "d4c00a173aacf815bb8c5bcffaab21da61ac7d66"
      ],
      "author": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Wed Sep 23 16:42:53 2009 -0700"
      },
      "committer": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Wed Sep 23 16:43:34 2009 -0700"
      },
      "message": "Fix widget stopListening NPE.\n\nlookupHostLocked caller needs to check for null return value.\n"
    },
    {
      "commit": "fed534ee5d47a96c1d104f9bd303e9480102813c",
      "tree": "2043fcb3c44472560801a64ba0ef9fff2c5fa980",
      "parents": [
        "d2cd9467b876777d512911fadeb948e58b9de257"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 23 00:42:12 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 23 00:42:12 2009 -0700"
      },
      "message": "Fix bug where onStartCommand() was never called with a null intent.\n\nAlso clean up some of the service java docs.\n\nChange-Id: I40e7d713e2393f7ee1db9822da8f07fb6304a9e4\n"
    },
    {
      "commit": "99f7eb453cee23e13f3ac8a4fa0632dd28f3a4b8",
      "tree": "5e76417979d27834989332e4539aa60090ad6ec1",
      "parents": [
        "df5862173c03f0d9595a2a5cb56c4af407d893dd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 22 17:27:53 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 22 18:59:35 2009 -0700"
      },
      "message": "Dock screen on config can now select AC or USB.\n\nChange-Id: Ifae9af4eb0295ba8e46c65879440b0da543b18e6\n"
    },
    {
      "commit": "b03b3bbd6833f7c6fbd8100fa3958220554f66a3",
      "tree": "da0245d74935b77acba5c2b914a7c2cd4f1679b8",
      "parents": [
        "36dac6ae8e005f0247e44345727d1580b1623127"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Tue Sep 22 11:14:17 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Tue Sep 22 14:14:10 2009 -0700"
      },
      "message": "If backup fails, reenqueue all of the affected packages for next time.\n"
    },
    {
      "commit": "9bfb707597898f54722460b48588007b682f3e2a",
      "tree": "2842b0fe78a78b836d652214189eaabdd7892f37",
      "parents": [
        "c0b8a96d28c55cb51e4f9e1f85c8d3ecf1ff13bf"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 22 11:37:40 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 22 13:39:34 2009 -0700"
      },
      "message": "Various fixes and improvements to window, activity.\n\n- New meta-data you can add to a dock activity to have it launched by the\n  home key when the device is in that dock.\n\n- Fix a deadlock involving ActivityThread\u0027s internal content provider lock.\n\n- New window flag to have a non-secure keyguard entirely dismissed when a\n  window is displayed.\n\n- New WindowManagerPolicy APIs to allow the policy to tell the system when\n  a change it makes during layout may cause the wall paper or\n  overall configuration to change.\n\n- Fix a bug where an application token removed while one of its windows is\n  animating could cause the animating window to get stuck on screen.\n\nChange-Id: I6d33fd39edd796bb9bdfd9dd7e077b84ca62ea08\n"
    },
    {
      "commit": "6c644f248f553898248b8a6948fac4d62874fedd",
      "tree": "25e9ebe06a59a91f7119e83a6a324b43952c37b2",
      "parents": [
        "916b2ca9375b0a6a54e2bef2b2b5faab23ac3cfb",
        "313b29faafab789ab7253be84c84ac560e72db7c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 22 15:49:58 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 22 15:49:58 2009 -0400"
      },
      "message": "Merge change 26379 into eclair\n\n* changes:\n  Add parameter for the restore set (device id) data is being restored from to the restore_start event\n"
    },
    {
      "commit": "313b29faafab789ab7253be84c84ac560e72db7c",
      "tree": "7383a8aac554e671d1781d05a2fd9ed07b1494a3",
      "parents": [
        "9bbd5ee49f4a26b87273c40a955557e63f10da3b"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Sep 22 10:44:10 2009 -0700"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Sep 22 10:44:10 2009 -0700"
      },
      "message": "Add parameter for the restore set (device id) data is being restored from to the restore_start event\n"
    },
    {
      "commit": "94db928d8cf5a69e8c2907fc33a6d656045f263d",
      "tree": "540d7325dc00584b1e9de908fba6604074490622",
      "parents": [
        "3f0476a4e283ce4e55caac016293dafe9dca11fa"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Sep 21 22:29:25 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 22 00:20:10 2009 -0400"
      },
      "message": "PowerManager: Require proximity sensor value be less than Sensor.getMaximumRange()\n\nThis allows us to support binary proximity sensors that only return 0.0 and 1.0\n\nChange-Id: Ifaf3a4e6fc720cb246ac3558e3e733b4b612c95b\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "9bbd5ee49f4a26b87273c40a955557e63f10da3b",
      "tree": "6e5f188687334d3500e859015071154ca8050b46",
      "parents": [
        "1167b43c3d1ca232c9b4e0a75343b6b3cb90f0df",
        "0144516e19b9fd5415a56f8b41191187e2344bb0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 21 22:26:35 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 21 22:26:35 2009 -0400"
      },
      "message": "Merge change 26290 into eclair\n\n* changes:\n  Make IBackupTransport.finishBackup() also return an int code, since it too can return TRANSPORT_NOT_INITIALIZED (in fact that\u0027s typically how it comes).\n"
    },
    {
      "commit": "fe2bddfae1b8c2375f58216871d923cbfe267dd3",
      "tree": "f0a88c4b8f2ce295608f56673eb786d8c31922f5",
      "parents": [
        "7f3fb7dec2afdffa37e3067ca8a5b9d01809a9ce"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 20 15:21:10 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 21 17:39:15 2009 -0700"
      },
      "message": "Don\u0027t wake up the screen as soon as the lid opens.\n\nWe may need to wait until the lock screen is ready.\n\nChange-Id: Id114f4f37051680ab880056b4c989b1fa8aa02b3\n"
    },
    {
      "commit": "bfe319e06aa56c081d0d94d64a8181291d7f7388",
      "tree": "d0015a99d27fd84554b4b8757304f4b017f75d50",
      "parents": [
        "a7719af31290bea50d822b535b6a886ba7a88097"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 21 00:34:05 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 21 17:26:41 2009 -0700"
      },
      "message": "Turn animations on by default.\n\nAdd API to skip the animation for a particular start activity, so that\na latter better one can be used.\n\nFix Theme.NoDisplay to actually work.\n\nFiddle with various animations: don\u0027t do a different animation for task\nswitching, try a scale animation for switching in/out of the wallpaper.\n\nAdjust the animation duration so that at normal speed we have something\nmore like the slower animation option (so slow is now the default).\n\nChange-Id: Ieba9f3db0bd9a762a19b327a3ecccbc7b547893d\n"
    },
    {
      "commit": "0144516e19b9fd5415a56f8b41191187e2344bb0",
      "tree": "95878a226727f07097b1541c225f2184ee53407f",
      "parents": [
        "9568fb21766684083ec256303a6ed7949ada7d9f"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Mon Sep 21 17:04:05 2009 -0700"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Mon Sep 21 17:04:05 2009 -0700"
      },
      "message": "Make IBackupTransport.finishBackup() also return an int code, since it too can\nreturn TRANSPORT_NOT_INITIALIZED (in fact that\u0027s typically how it comes).\n\nFor consistency, make other IBackupTransport methods return int instead of\nboolean, and handle accordingly.\n\nMake initializeDevice() its own method instead of a flag on performBackup().\nThis will be needed when un-checking the settings box anyway, and is\nconceptually unrelated to whatever happens to be the first post-initialization\nbackup we perform.  (Note that even if the init is sent separately from the\nbackup operation, the server will remember that an init has been done and\nwill *not* return NOT_INITIALIZED for the subsequent backup.)\n\nFix LocalTransport accordingly (trivial changes).\n\nHandle failures more robustly in BackupManagerService -- most notably,\ndoQueuedBackups() was ignoring the result code of processOneBackup(), so\na NOT_INITIALIZED error would go past unseen (at least until the next\nbackup pass).  Keep track of error code returns more universally now.\n(This includes finishBackup(), of course.)\n"
    },
    {
      "commit": "d55e18acbe444b74dc9e71eff6ea2c3eaf25fbd0",
      "tree": "cdb9404d28612d9bf1d149063cfb515dd9f50161",
      "parents": [
        "f8d8b46a2c684d51cd661a9d479dd895420a90b2"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Mon Sep 21 10:12:59 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Mon Sep 21 10:19:17 2009 -0700"
      },
      "message": "Reset backup tracking in response to transport data-wipe notification\n\nWhen attempting a backup, the transport may inform us that the backend is in an\nuninitialized state.  This typically means that the device\u0027s data has been wiped\nafter a period [e.g. 90 days] of inactivity.  This means that we need to\nre-store all data subject to backup, and all of our incremental state tracking\non the device is now stale.\n\nIn response, we wipe all of our recorded backup state and restart the backup\npass on all participants.\n"
    },
    {
      "commit": "2eb239f92dbde5cd0fb6b8f665009878cbc63356",
      "tree": "a48f3963e379c75fced315f347bea1bfe8e1436b",
      "parents": [
        "5feb428f349a3d9f481ba98b8ce11d25e05f2eb3"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@google.com",
        "time": "Mon Sep 21 15:30:21 2009 +0400"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@google.com",
        "time": "Mon Sep 21 15:30:21 2009 +0400"
      },
      "message": "Fix NPE crash-loop when cpufreq not available in the kernel.\n"
    },
    {
      "commit": "e705ca961f6c4f76f5b403d8556ee38305553aa7",
      "tree": "e56b146243cf3b5c837f15b1b565045ae53621e0",
      "parents": [
        "718970bcf35252451ae15a326bd897b436ba93f3",
        "7c2bb66db77653c0a690962858cf105b0cb981d7"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 20 22:49:44 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 20 22:49:44 2009 -0400"
      },
      "message": "Merge change 26103 into eclair\n\n* changes:\n  Handle restore of the original naive wallpaper backup schema\n"
    },
    {
      "commit": "7c2bb66db77653c0a690962858cf105b0cb981d7",
      "tree": "e133b14ba516709f2942c849e9786c59518edf34",
      "parents": [
        "eb8aad7b2a99d3332a2fa6d8778356d634c47127"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Sun Sep 20 19:47:46 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Sun Sep 20 19:47:46 2009 -0700"
      },
      "message": "Handle restore of the original naive wallpaper backup schema\n"
    },
    {
      "commit": "e43530ab571e901f94361078c7c1f970a0bd27f2",
      "tree": "2a2c528dab1a81064c63bbc1adbe77ba39eb66ac",
      "parents": [
        "eb8aad7b2a99d3332a2fa6d8778356d634c47127"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Aug 21 13:11:37 2009 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sun Sep 20 16:03:50 2009 -0700"
      },
      "message": "Track CPU speed stepping to get more accurate CPU cost per app.\n\nMore CPU speed stepping happening with newer devices, so we need\nto qualify CPU time with the CPU speed, since power consumption\nvaries greatly by speed. Apps that peg the CPU should get a higher\npenaltly.\n\nAlso, fix for 2062930: NPE at VolumePreference.onKey()\n"
    },
    {
      "commit": "90967f4f0d5ba38ae7225788b111289516d1dda1",
      "tree": "a2379cfab758280839c9c5dc812e94f925fa9a08",
      "parents": [
        "0647b580aa7874311fc77b659e4f646750ddd74e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Sun Sep 20 15:28:33 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Sun Sep 20 15:33:35 2009 -0700"
      },
      "message": "Fix up the first-backup-ever tracking\n\nThis changes a couple of bits of the Backup Manager\u0027s logic around\nfirst-backup-ever handling.  First, it uses the same \"what we\u0027ve ever backed up\"\nhandling as the rest of the system for purposes of instructing the backend to do\na wipe when the metadata is initialized for the device, instead of looking at\nthe presence of the @pm@ file.  Secondly, for the time being we won\u0027t be using\nthe saved state produced by agents\u0027 doRestore() logic.  Until the server is\nmigrating each restored package\u0027s data over to the new dataset, this was\nresulting in the client holding an agent state blob for which no data existed on\nthe server under this device\u0027s identity but which the device thought was fully\nup to date.\n"
    },
    {
      "commit": "25a747f5c47f25c1a18961b03507f309b84924fe",
      "tree": "d0ffbf3ab00bcc821e572054dccdf8e0848dcf0f",
      "parents": [
        "d163f4babe101b89aaf322c34d3bafeae237f7da"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Sun Sep 20 12:43:58 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Sun Sep 20 12:43:58 2009 -0700"
      },
      "message": "Add an \u0027init everything\u0027 operation to the first backup pass\n\nIBackupTransport.performBackup() now takes a flag \"wipeAllFirst\", which if set\nwill result in the entire restore set for the current device/account being wiped\nclean prior to the storage of the provided package.  This ensures that a device\non which backup has just been enabled will not confront potentially-stale\ninformation, nor will the restore set potentially contain mismatched data from\norphaned packages.\n\nThe Backup Manager has also been revised to pass this flag when first backing up\nits master metadata block (and never pass it thereafter unless something has\ncaused the backup state tracking to be erased, e.g. the user has opted out of\nbackup and then later re-enabled it).\n"
    },
    {
      "commit": "4492bcd8b0437b1200e93c001ca75d9fa8c4ad30",
      "tree": "d41df1de6fb8dd27c7b742be49288f20674ff90c",
      "parents": [
        "b4c0b3d8ccbadca9d4e8a0e5c50a4549f2c84bf6",
        "a99f461b98df6b88c6b0fae83b41077dde9a2228"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 20 10:48:09 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 20 10:48:09 2009 -0400"
      },
      "message": "Merge change 25938 into eclair\n\n* changes:\n  Don\u0027t require WAKE_LOCK permission to enable wifi\n"
    },
    {
      "commit": "b8155068ef855147d86465817be2660a5212a6bb",
      "tree": "0316cd303f96c178eba60681bffe9fdeabf0cfee",
      "parents": [
        "2b1cfef19efb11d283a08042d37a326141c28429",
        "200b30bba53412919d2b5b4b85c02727b87f51df"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 20 00:27:28 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 20 00:27:28 2009 -0400"
      },
      "message": "Merge change 25944 into eclair\n\n* changes:\n  Wake the screen if the proximity wakelock is released while the proximity sensor is active.\n"
    },
    {
      "commit": "200b30bba53412919d2b5b4b85c02727b87f51df",
      "tree": "860fb249ab78682871fa1afc77edbc372bd5bba7",
      "parents": [
        "27272bfac63fab28aa3899243dfe79f226445b3b"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Sep 20 00:23:59 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Sep 20 00:23:59 2009 -0400"
      },
      "message": "Wake the screen if the proximity wakelock is released while the proximity sensor is active.\n\nThis fixes a problem that resulted in the screen staying off indefinitely if the prox sensor\nis active at the beginning of a bluetooth call and could result in the screen staying off\nin other similar circumstances.\n\nChange-Id: Icfa0046d3179f9bb2247e7a3c1f9ff073312667a\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a99f461b98df6b88c6b0fae83b41077dde9a2228",
      "tree": "6a72c849d7ee0bb11e7a967aa664e502b92cf2d4",
      "parents": [
        "9a24bc563f28d8489c7178b93ff05f02e8b8a893"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Sat Sep 19 18:14:32 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Sat Sep 19 18:14:32 2009 -0700"
      },
      "message": "Don\u0027t require WAKE_LOCK permission to enable wifi\n\nThe process for starting wifi was using a wakelock around a message-pass and this was causing\nan exception for meer mortals (who don\u0027t have WAKE_LOCK permission).\n\nbug: 1750535\n"
    },
    {
      "commit": "1f6c7e6a2b99f99fdfbe438118241e60b4ded745",
      "tree": "f5f7b3e64926760f7494c0f7284c447bcdd03070",
      "parents": [
        "e69335f8b4f4195e57613fe6b83e18e23e0c2760"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Sat Sep 19 18:06:52 2009 -0700"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Sat Sep 19 18:06:52 2009 -0700"
      },
      "message": "Change the broadcast intent for dock state changes from a sticky broadcast to\na sticky ordered broadcast. This is so individual apps can override the default\nbehavior and stop the related dock app from launching.\n"
    },
    {
      "commit": "edd9316ca9b3b24d54e8a2468927da7e813098fc",
      "tree": "3b79a0c7b48e23623480abebbaa9fc9708175006",
      "parents": [
        "efa199f016985b0a9d0471e42c803ee9f7941f0e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 19 14:03:05 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 19 14:03:05 2009 -0700"
      },
      "message": "Add better APIs for the battery status, and other cleanup.\n\nAlso add new configs for keeping screen on while docked, which will\nbe used elsewhere.\n\nChange-Id: Ifaa1118f14fd850ac809895f9a5c9e8c413259b8\n"
    },
    {
      "commit": "65c23872066d39521e98fd4b000069c562c57076",
      "tree": "3fdfd799c77d31303eb3ab1a76511ecf1180cdd2",
      "parents": [
        "de71cb3b6f3a7484402e2288ddfaad3ea3821f59"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 18 17:47:02 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 18 17:47:02 2009 -0700"
      },
      "message": "Fix transformation on windows.\n\nThe window offset was being applied incorrectly in relation to the\nanimation transform.\n\nChange-Id: Ia578129f48cf6c57ae795af862d2b6ce5d447994\n"
    },
    {
      "commit": "90d8a6a449dc12fea2b56b557c243e33746d914a",
      "tree": "4984d93853bdfe28c63da7f776be2f255e264101",
      "parents": [
        "b18b0956afbe0730ced1c5b95c0071dba447765e",
        "83861e74c3c89337b0cc43fb38daedfef19e6edf"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 18 18:25:33 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 18 18:25:33 2009 -0400"
      },
      "message": "Merge change 25628 into eclair\n\n* changes:\n  Inefficient but correct fix for 2122381: call finishBackup after every performBackup\n"
    },
    {
      "commit": "c3a3b399a9d7707b7f3c4108e0e31a1b664a6f22",
      "tree": "87e9a8dbd09e3ac0a70bd32c7a22c698e38f73d4",
      "parents": [
        "66fdd84e28a0619b7981ca00f2f2cd7681dbc82d",
        "a233943cb1b064155d001556c573140ed333149e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 18 15:07:28 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 18 15:07:28 2009 -0400"
      },
      "message": "Merge change 25752 into eclair\n\n* changes:\n  Add a Gservices setting to controll the app error reporting feature.\n"
    },
    {
      "commit": "6136b7ef169a65a02a6660be636fcec370c68145",
      "tree": "b72181348bd6e5f0c9e74126795d6e69a74dd2f2",
      "parents": [
        "da05aa828853964dccd185f6a7f5ca72cc0d3573"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 18 01:53:49 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 18 09:27:22 2009 -0700"
      },
      "message": "Show the live wallpaper on the lock screen.\n\nThis also takes care of the problem of system dialogs like the\ncrash dialog causing the status bar to dim behind the lock screen.\n\nOn the down side, the fade transition from the lock screen is\nnow gone, and I\u0027m not sure how likely it is for it to return.\n\nChange-Id: I7f9e6d0f3510a1fdbbe6ad252d986bd85a16475d\n"
    },
    {
      "commit": "a233943cb1b064155d001556c573140ed333149e",
      "tree": "d87cc2d6c19cf8da6b6438361391e419923eae74",
      "parents": [
        "0050ee36398c3ab6e5f1ee0038609aff8cf4f0e9"
      ],
      "author": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Fri Sep 18 15:01:26 2009 +0200"
      },
      "committer": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Fri Sep 18 15:01:26 2009 +0200"
      },
      "message": "Add a Gservices setting to controll the app error reporting feature.\n"
    },
    {
      "commit": "fa82f22f1d8c4c828bdf9b670006be4f4fec772e",
      "tree": "586dbd1bf9cbefe26cfecd6cf853b78eb6a4fb64",
      "parents": [
        "9b64ef133c1eb24c8d00aa7e46ec86c544af5fe2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 17 15:14:12 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 17 18:01:35 2009 -0700"
      },
      "message": "Fix issue #2093608: Calendar widget takes a few seconds to launch\n\nAvert your eyes!\n\nThe key change here is that RemoteViews can now call a Context API to\nstart its pending intent, which inside of the activity manager we can\nuse to determine to cancel the timeout delay for external entities\nto disrupt the home screen.\n\nChange-Id: If097cf7478cbed7a3c04a304050bd7fd5703d197\n"
    },
    {
      "commit": "c7d2530d52e9c188392b118caea64673dbbad45c",
      "tree": "fb5771194ab1b4fa32f2e386a5b99e874feb88b9",
      "parents": [
        "0d51d63595014c4237010118aaac891e657c2d23"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Sep 17 14:58:16 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Sep 17 16:34:39 2009 -0700"
      },
      "message": "Report NO_CONNECTIVITY when failover net unavail\n\nFix ConnectivityService so that it reports connection status correctly.\n\nbug: 2128595\n"
    },
    {
      "commit": "0d51d63595014c4237010118aaac891e657c2d23",
      "tree": "d6a9baba1e93e20a8a79a340eb4fe7c3fad4191b",
      "parents": [
        "96352104fbb172d91f957551c772988e02d79f33",
        "3d7e855df3e8556b311ef3900990047554aaa0e5"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 17 19:32:34 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 17 19:32:34 2009 -0400"
      },
      "message": "Merge change 25626 into eclair\n\n* changes:\n  Check if rename of current settings file was successful before persisting new changes to settings.\n"
    },
    {
      "commit": "3d7e855df3e8556b311ef3900990047554aaa0e5",
      "tree": "21e294b6c263f661be5f2174f5314e6b605494dd",
      "parents": [
        "7805933738de33b1961bd03553237a86d90792dd"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Sep 17 15:38:20 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Sep 17 16:30:14 2009 -0700"
      },
      "message": "Check if rename of current settings file was successful before persisting\nnew changes to settings.\n"
    },
    {
      "commit": "83861e74c3c89337b0cc43fb38daedfef19e6edf",
      "tree": "1f0d67d70131a46c4cfd51a2ae91e3e22e51c0b2",
      "parents": [
        "6817946fd0a009a554f6c0aae1b6c608ebd531c5"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Sep 17 16:17:55 2009 -0700"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Sep 17 16:19:02 2009 -0700"
      },
      "message": "Inefficient but correct fix for 2122381: call finishBackup after every performBackup\n"
    },
    {
      "commit": "4ac137cad9fb9aa5b69776b4ae3c8f906cc57511",
      "tree": "471d973d87105f492bab15d9edc32233dd79bc0c",
      "parents": [
        "b9c107a362d85deda61da3cfac594cc1de7b6294",
        "4f21c4cf077cfee5b35a56703618115614bc40f2"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 17 15:11:22 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 17 15:11:22 2009 -0400"
      },
      "message": "Merge change 25526 into eclair\n\n* changes:\n  Add API to retrieve memory used by running processes.\n"
    },
    {
      "commit": "c2912a662d984e2f23187fa31e7e71122d9472d9",
      "tree": "7f037891c5c46216e185be62e307f8f242d9c454",
      "parents": [
        "dfe095a045f132dd9c75da4286b87532d9a973a0",
        "c17f07aa0468424e3475d7761313b761372d1860"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 17 14:39:43 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 17 14:39:43 2009 -0400"
      },
      "message": "Merge change 25490 into eclair\n\n* changes:\n  Revert \"Don\u0027t activate keyguard if screen is turned off while proximity sensor is active.\"\n"
    },
    {
      "commit": "4f21c4cf077cfee5b35a56703618115614bc40f2",
      "tree": "4f3ef99f737c731521ab5f8e81fba2e18e8facba",
      "parents": [
        "7805933738de33b1961bd03553237a86d90792dd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 17 10:24:05 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 17 11:13:45 2009 -0700"
      },
      "message": "Add API to retrieve memory used by running processes.\n\nChange-Id: I9c1935c2ef3c78bd67ec4dfd811a1caaab4514c3\n"
    },
    {
      "commit": "2d2078aa1d6e31063f565a20b717f3b8908fff02",
      "tree": "84a03e58a63ff6f2f4e79c512081e0f57b6b1fd3",
      "parents": [
        "94ef49918240cedaa559ad7f7752d20cf4d1668b"
      ],
      "author": {
        "name": "Yusuf T. Mobile",
        "email": "yusuf.saib@T-Mobile.com",
        "time": "Tue Jul 14 15:46:26 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Sep 17 13:56:36 2009 -0400"
      },
      "message": "LocationManagerService: Take fix accuracy into account in proximity zone logic.\n\nFixes http://code.google.com/p/android/issues/detail?id\u003d2002\n\nChange-Id: If2b0665c556269279c5813f2254f9624a556bd92\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "c17f07aa0468424e3475d7761313b761372d1860",
      "tree": "558bd3ca293a19fa96ec215c62d48758a1d1fa0b",
      "parents": [
        "c7aef5d0fda58a1685e5584b34e1b80ba016f017"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Sep 17 11:47:56 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Sep 17 11:58:01 2009 -0400"
      },
      "message": "Revert \"Don\u0027t activate keyguard if screen is turned off while proximity sensor is active.\"\n\nThis reverts commit ddfe879b783ad72603308e28e8f683454464684e.\n"
    },
    {
      "commit": "b8eb1cb79b2912b91a1b0198ba3e61776af07a79",
      "tree": "3e3699cf7bd719a57ee3bb2284d0d8269317cb6c",
      "parents": [
        "cfc7f1aaefa60f43e27969690a939f664ff1c678"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Wed Sep 16 10:57:21 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Wed Sep 16 17:58:45 2009 -0700"
      },
      "message": "Be sure to include shared lib path info when dealing with agents\n\nIn particular, this ensures that on the client side the full classpath is known\nand used by the class loader during execution of the agent.\n"
    },
    {
      "commit": "248b188860534c50147592fc9b486512bfe75c78",
      "tree": "fcb954ed93176b0dc939913fa374c9eea7e15030",
      "parents": [
        "32c687c20d6ac3080b396787147892dc85126b33"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 16 16:46:44 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 16 16:46:44 2009 -0700"
      },
      "message": "Fix #1827299: Google login screen to re-enter password is not viewable\n\nThis was a problem with not hiding the starting window when it got\ntransfered to an activity whose window (instead of token) animates\nwhen displayed.\n\nChange-Id: I9eb58faa6e27d53144687952a715fc083a5c5842\n"
    },
    {
      "commit": "9092ab4d458ad60b459d5fad52368bde5d25f665",
      "tree": "3c96a0fe1bc09770934b18f15a4bc293e5d06572",
      "parents": [
        "764916d01b779ccc8064946c6ba2962fe063ed86"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Sep 16 13:01:32 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Sep 16 14:43:21 2009 -0400"
      },
      "message": "Add support for launching activities when attaching to a car or desk dock.\n\nCategories CATEGORY_CAR_DOCK and CATEGORY_DESK_DOCK can be assigned to\nactivities to make them launchable on docked events.\nThis is a better mechanism than listening for ACTION_DOCK_EVENT with a broadcast receiver.\n\nChange-Id: Ic5f3ab3555ce02ca922bc31ebba41978cefe8bda\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "2a66eee3ef88bdc7167e5e5d0471c1e8b2e68fc6",
      "tree": "df5e9510d58893dd7490a1cad5251f0e7bb75d86",
      "parents": [
        "d3ba4811d48e01e85b4faa57da159471022e6daa",
        "ee5ece4a4db46458207b93bce2d4c01459236376"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 16 12:36:36 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 16 12:36:36 2009 -0400"
      },
      "message": "Merge change 25157 into eclair\n\n* changes:\n  Remove deadlock in PackageManager when installing or upgrading packages. PM first creates a temporary file from the input package uri before installing it. if the package uri points to a content uri, the content provider  has to be retrieved via the ActivityManager which could cause deadlocks with the package manager locks being held. Clean up by always copying or creating temporary files before acquiring these locks. Fix issue when restoring a failed upgrade for third party apps.\n"
    },
    {
      "commit": "4337476a6669ce52549ce4a60f5e4d07f8e3033f",
      "tree": "c2644a037e4d69e18436dcc72e80bc28026948aa",
      "parents": [
        "85628188e74c015060e7f315560e659e53294775"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Sep 16 14:28:42 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Sep 16 14:28:42 2009 +0800"
      },
      "message": "Fix the missing part for reading enterprise fields in wifi configuration\n\n+ refactor the enterprise fields.\n"
    },
    {
      "commit": "93e462b79d6896da10e15e74c5aec6beb098dddf",
      "tree": "1f5f178b544a49ba5a80e74269b083775ff97854",
      "parents": [
        "6cf05f1c3d6f4585573c8663a62848a09f6a08ff"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 15 22:50:40 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 15 22:50:40 2009 -0700"
      },
      "message": "Implement issue #1780928: Need support hiding nav keys.\n\nThis implements support for devices whose hardware can hide\ntheir navigation keys.  It works much like the existing keyboardHidden\nconfiguration, and for compatibility uses the same configuration\nchange bit.\n\nAlso add FLAG_TURN_ON_SCREEN for windows, which has the system\ncause the screen to be turned on when the window is displayed.\nGreat fun when used with FLAG_SHOW_WHEN_LOCKED!\n\nChange-Id: I0b867f19af85cfd8786a14cea194b34f7bdd9b7a\n"
    },
    {
      "commit": "6ee7b04d270824214fca0296d0386e0c3d733cdf",
      "tree": "4c2217018e8b346d47019f6597169485f7494395",
      "parents": [
        "dd8f6186775f69a8fef6213bcdc23be633d1ab6f",
        "9767e41d92bd6f4cf16111b3f911cef78c8b01eb"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 15 22:06:24 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 15 22:06:24 2009 -0400"
      },
      "message": "Merge change 25192 into eclair\n\n* changes:\n  Some improvements for wallpaper configuration.\n"
    },
    {
      "commit": "9767e41d92bd6f4cf16111b3f911cef78c8b01eb",
      "tree": "115b324793c1bcc89164ee249711fe9a2475eb9b",
      "parents": [
        "5862b673d412e596f3fa419c00bd0ba16bf6c094"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 15 18:45:34 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 15 18:59:31 2009 -0700"
      },
      "message": "Some improvements for wallpaper configuration.\n\nThis introduces a new activity that you can derive from to implement\na wall paper configuration activity.  This is supposed to select\na theme based on whether it is being run to configure a real wallpaper\nor a preview, but this is going to be more difficult to do than I\nthought. :(\n\nAlso fix a problem in the white theme where the list view\u0027s background\nwas being set to white, so it wouldn\u0027t work on a transparent bg.\n\nChange-Id: I26d5a8695a3c878a1664eb09900eded57eaff990\n"
    },
    {
      "commit": "cc9f52f94349ce34489a5a2c803271e53961286b",
      "tree": "14514be967bd4455ce7b1d386b3bdf2d5294e53a",
      "parents": [
        "d6b10fb86229ed0e904138ec4604066ea85059db"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 18:23:59 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 18:23:59 2009 -0700"
      },
      "message": "make the window-shade use an opaque surface if possible\n"
    },
    {
      "commit": "ee5ece4a4db46458207b93bce2d4c01459236376",
      "tree": "ad5dd9223c4f798acabeb1de6115adb69c2837dc",
      "parents": [
        "1cd403eaac24e0e84619dea07e2d1d60e58e1fd2"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Sep 15 13:41:47 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Sep 15 16:42:20 2009 -0700"
      },
      "message": "Remove deadlock in PackageManager when installing or upgrading packages.\nPM first creates a temporary file from the input package uri before installing it.\nif the package uri points to a content uri, the content provider  has to be retrieved via the ActivityManager\nwhich could cause deadlocks with the package manager locks being held.\nClean up by always copying or creating temporary files before acquiring these locks.\nFix issue when restoring a failed upgrade for third party apps.\n"
    },
    {
      "commit": "237a29923a05663a2195bf93b392768dbaf31ebf",
      "tree": "37a21b8413a9c6be00843a56fd0bb63b1cd05e85",
      "parents": [
        "f02c0740d3039977149773604a229c9f76c8121d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 15 14:42:16 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 15 15:47:09 2009 -0400"
      },
      "message": "Move backlight brightness from HardwareService to PowerManager\n\nto prevent apps from changing the hardware behind its back.\nFixes b/2041941 Lock screen flashes the screen very bright before dimming\n\nChange-Id: Ice757f7ae87902bdfb3634471cf44f020ebfaae4\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f02c0740d3039977149773604a229c9f76c8121d",
      "tree": "0576332b741a0cae55a6fa95c7007e59c0a87c6f",
      "parents": [
        "f73f91c5b1f66bbe4b3ca59b743a62ad5a65853f"
      ],
      "author": {
        "name": "Ken Schultz",
        "email": "kschultz@motorola.com",
        "time": "Thu Sep 10 18:37:37 2009 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 15 10:58:05 2009 -0400"
      },
      "message": "DockObserver wakes the display when broadcasting a change\n\t- normal display timeout applies after wake\n\nSigned-off-by: Ken Schultz \u003ckschultz@motorola.com\u003e\n"
    },
    {
      "commit": "d20ea369b26cb40ee6122dd819ce9ef947489146",
      "tree": "da91bc5a91b9056841164567e85439649400fccf",
      "parents": [
        "951764b97010dfa073126f52b43ea1bdf1b35998"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 15 00:13:38 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 15 02:29:28 2009 -0400"
      },
      "message": "PowerManagerService: Use 5 cm threshold for the proximity sensor.\n\nThis eliminates the assumption that the proximity sensor will always return\nzero distance when it is active.\n\nChange-Id: I6245b074e4c42aeae3a181e6a5087554517046d2\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "951764b97010dfa073126f52b43ea1bdf1b35998",
      "tree": "a4385faacb89cb30250d2a8ce0da611d1eefddc2",
      "parents": [
        "151921a62485f2141ad1316076c196ef00e1b421"
      ],
      "author": {
        "name": "Dan Murphy",
        "email": "D.Murphy@motorola.com",
        "time": "Thu Aug 27 14:59:03 2009 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 15 02:29:15 2009 -0400"
      },
      "message": "Add automatic lighting control framework\n\nAdd changes to have the ability to turn on and off the\nautomatic light sensing for the device.  This is fully configurable\nand is by default not  present.  Vendors should override the ALS setting\nto enable the automatic lighting controls.\n\nThese changes will add a check box to the Brightness settings menu to give control\nto the user to allow the device\u0027s display lighting to be controlled via the slide bar\nor the auto lighting system.\n\nIf the user selects auto then the slide bar will become invisible.  Manual mode\nwill present the slide bar to the user.\n\nChange-Id: I146a6d75b99b08c9b839218ce6b85adf21f9fd73\nSigned-off-by: Dan Murphy \u003cD.Murphy@motorola.com\u003e\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "83fe3f559249451706957b1a5f660b2b8272f114",
      "tree": "1693c610256fbe8fea20da55c21458d65ced98ef",
      "parents": [
        "c2974809373697147cbe5754835cc871fb93aef1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 12 23:38:30 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 14 17:53:52 2009 -0700"
      },
      "message": "Last big work on #1991910: Make swipes work with capacitive keys\n\nThis takes care of allowing us to cancel the back button.  The\nback button is a bear because it is strewn all over the place --\neverywhere you can close something, there is some code looking\nfor the back button that now needs to deal with being canceled.\n\nThe main things changed are activity (of course), dialog,\ninput method, search dialog.  There are some other misc places\nin the framework (and some I missed here that I will get in a\nsecond pass).\n\nTo facility all of this, the key dispatching APIs now provide\na lot more support for dealing with looking for cancelled keys,\nand incidentally also provide an actual API for catching long\nkey presses.  This also helped clean up the code in PhoneWindow\nwhere it deals with all of the combinations of key pressed and\nreleases.  (And also allows people to override\nActivity.onKeyLongPress() to provide a different long press\naction for a standard key like search.)\n\nAnd while I was doing this, I reworked how we detect long\npresses by having this be part of the key event delivered by\nthe window manager.  This should greatly reduce (hopefully\noutright eliminate) the problems with long presses being\nmis-detected when an application is being slow.\n\nChange-Id: Ia19066b8d588d573df3eee6d96e1c90fdc19f57d\n"
    },
    {
      "commit": "d023f9a9a90705410250cd86bc6446c738423a99",
      "tree": "7ed7ccf3847d48af6e692813cdcc5e5838a53c8b",
      "parents": [
        "aa931bcb0acb93ce760f4e5d27153fb1c6d33a10",
        "19382ac1a4e4e7c23a1346d299368763f149de9c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 18:45:42 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 18:45:42 2009 -0400"
      },
      "message": "Merge change 24829 into eclair\n\n* changes:\n  Some optizations to wallpaper drawing/scrolling.\n"
    },
    {
      "commit": "19382ac1a4e4e7c23a1346d299368763f149de9c",
      "tree": "9165f1b94f1bd5e9966729b1047d03a733570867",
      "parents": [
        "714ec1360cde8b1cbf6e6b8572256e4100f11560"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 11 21:13:37 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 14 15:29:44 2009 -0700"
      },
      "message": "Some optizations to wallpaper drawing/scrolling.\n\nFirst, fix some issues with the final wallpaper bitmap\nwe use: ensure it is always 16bpp, and make sure dithering\nof its bitmap is turned off.   We take of dithering\nwhen loading, to make sure we don\u0027t use it when drawing.\n\nAlso add new APIs to return the wallpaper with the equivalent\nof Launcher\u0027s old FastBitmapDrawable.  As doing this, also load\nthe default wallpaper the same way as custom ones, taking care to\nresize it as needed at load time.\n\nFinally implement a mechanism for the window manager to wait\nfor the wallpaper to redraw at its new position before returning\nfrom the application\u0027s call to change the offset.  This ensures\nthat the wallpaper better tracks the application.  Note that there\nis a timeout in this wait that is relatively short, and if it\nexpires we will run for a while without waiting.\n\nChange-Id: Ife449437746da85958bd447e0a6cf3d2223b398c\n"
    },
    {
      "commit": "a625b38cb3a6a6b3a890369b7bbbed7c028cb120",
      "tree": "551318458c10d95a665eb079ee4a714c5448ace8",
      "parents": [
        "91e2d8651fe38a921b37a8bf8b3148c572cf9430"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Sep 12 17:36:03 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Sep 14 15:08:37 2009 -0400"
      },
      "message": "PowerManagerService: Fix keyboard backlight support:\n\nTurn off keyboard backlight immediately when keyboard is closed.\nChanging keyboard visibility state signals user activity except in the case\nwhere the keyboard is closed and the screen is already off.\n\nFixes bugs b/1351141 and b/1319625\n\nChange-Id: If4bf2c1dd8e0c2bc08196e443b6103a6041f27e1\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "7c9bf7caa2936e8b76598be9fffea980d81c61d3",
      "tree": "d474c5edac25a48c986f913aea99e66fa4a89951",
      "parents": [
        "d68781ace179e19b70120411baf307104683fa4b"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Sep 11 17:23:35 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri Sep 11 17:23:35 2009 -0700"
      },
      "message": "Don\u0027t init wifiChannels until after supplicant up\n\nThe supplicant can take up to 15 seconds to start - setting the number of wifi channels\nimmediately after requested wifi start often will fail.\n\nChanged to set the number of channels when the supplicant is reported as alive.\n\nbug:2083601\n"
    },
    {
      "commit": "005b228cdfb369d9b3b325884c0337ba5968bf8c",
      "tree": "d1ee610898b65acd5c472014d395748b9d950150",
      "parents": [
        "9b6911cb85a9c9a0fef145f91c9999da5a75ce21"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Sep 10 10:21:56 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Sep 10 18:52:21 2009 -0700"
      },
      "message": "API_CHANGE: Cleanup, javadoc and unhide more Bluetooth API.\n\nThis is a large batch, and covers:\n\n-- Bluetooth Device Discovery --\nBluetoothAdapter.ACTION_DISCOVERY_STARTED\nBluetoothAdapter.ACTION_DISCOVERY_FINISHED\nBluetoothAdapter.startDiscovery()\nBluetoothAdapter.cancelDiscovery()\nBluetoothAdapter.isDiscovering()\n\n-- Bluetooth bonding (pairing) --\nBluetoothAdapter.getBondedDevices()\nBluetoothDevice.ACTION_BOND_STATE_CHANGED\nBluetoothDevice.EXTRA_BOND_STATE\nBluetoothDevice.EXTRA_PREVIOUS_BOND_STATE\nBluetoothDevice.BOND_NONE\nBluetoothDevice.BOND_BONDING\nBluetoothDevice.BOND_BONDED\nBluetoothDevice.getBondState()\nBluetoothDevice.createBond()\nBluetoothDevice.cancelBondProcess()\nBluetoothDevice.removeBond()\n\n-- BluetoothClass --\nBluetoothDevice.ACTION_CLASS_CHANGED\nBluetoothDevice.EXTRA_CLASS\nBluetoothDevice.getBluetoothClass()\nBluetoothClass.Service.*\nBluetoothClass.Device.Major.*\nBluetoothClass.Device.*\nBluetoothClass.getDeviceClass()\nBluetoothClass.getMajorDeviceClass()\nBluetoothClass.hasService()\n\n-- Misc BluetoothDevice --\nBluetoothDevice.ACTION_ACL_CONNECTED\nBluetoothDevice.ACTION_ACL_DISCONNECTED_REQUESTED\nBluetoothDevice.ACTION_ACL_DISCONNECTED\nBluetoothDevice.ACTION_DISCOVERED\nBluetoothDevice.ACTION_NAME_CHANGED\nBluetoothDevice.EXTRA_DEVICE\nBluetoothDevice.EXTRA_NAME\nBluetoothDevice.EXTRA_RSSI\n\n-- Misc BluetoothAdapter --\nBluetoothAdapter.ACTION_LOCAL_NAME_CHANGED\nBluetoothAdapter.EXTRA_LOCAL_NAME\nBluetoothAdapter.checkBluetoothAddress()\n\nI deprecated BluetoothIntent and moved each intent into the class it relates\nto.\n\nChange-Id: I877b1280428ab46278b2bc25668bb44cda22dc36\n"
    },
    {
      "commit": "f3f720031932500d92090b0093393651e7a713e0",
      "tree": "96db274a3d3af960d13e0e6f4f3c09349011cb8b",
      "parents": [
        "ebebf9c36c0112d99cb2e11953febdff8ba5ff23",
        "8206ff30c23c76851bebc8d72a65e65b0f7f9a29"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 10 21:10:58 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 10 21:10:58 2009 -0400"
      },
      "message": "Merge change 24588 into eclair\n\n* changes:\n  Fix for multi-apn MMS access.\n"
    },
    {
      "commit": "8206ff30c23c76851bebc8d72a65e65b0f7f9a29",
      "tree": "82c437af24595ae95bc313124cb9df09108b1041",
      "parents": [
        "bcbcaa7edd32ba67c6290d79f7e7821c4b5b39ac"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Sep 10 15:06:20 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Sep 10 18:01:01 2009 -0700"
      },
      "message": "Fix for multi-apn MMS access.\n\nMark cellular variants with the same availability, regardless of which are currently in use.\nAvailability just means the radio is enabled and sees the network, but has no guarantees that\nwe could connect to an APN if requested.\n\nFix the requestRouteToHost logic to support apn switches without WIFI.\n\nbug:2093841\n"
    },
    {
      "commit": "5a8a1151e267b29978f219f9569fdfc5e74cc210",
      "tree": "82e9098547c12283278fb001a48788133a5285c1",
      "parents": [
        "bcbcaa7edd32ba67c6290d79f7e7821c4b5b39ac"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Thu Sep 10 16:08:47 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Thu Sep 10 16:08:47 2009 -0700"
      },
      "message": "Try not to crash the system server because of corrupt restore data\n\nWhen we\u0027re about to allocate an array based on the restore data for purposes of\nunflattening a signature block, don\u0027t automatically assume that it\u0027s valid.  If\nit\u0027s corrupt [and we\u0027ve seen this in practice] we can wind up trying to allocate\nan array with 1.8 million objects, and throw an OutOfMemoryError, bringing down\nthe system.\n\nThis change arbitrarily decides that no package should have more than 20\nsignatures in its block, and aborts the restore if the metadata is thus revealed\nto be corrupt.\n"
    },
    {
      "commit": "bcbcaa7edd32ba67c6290d79f7e7821c4b5b39ac",
      "tree": "7840b8a005d8261f864b8404e5cf5941cf6caf80",
      "parents": [
        "e1fd02400d69c059db2cc6299c893eba4096cc1d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 10 10:54:46 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 10 12:08:50 2009 -0700"
      },
      "message": "Wallpapers, animations, pending intent.\n\nSome more tweaks and fixes to wallpapers.  Make sure wallpapers are\ntold they are not visible when the screen is off.  Add some new animations\nfor transitions across tasks, and fiddle with many of the existing\nanimations.  Clean up the relationship between translucent activities\nand animations.  Add new API to start a PendingIntent from an\nactivity.\n\nChange-Id: Ie0bf45fe44081bb6982c75361257a55d9cd9d863\n"
    },
    {
      "commit": "a7ef2698a6c9182ffd41574495a18da1ffc2be2c",
      "tree": "a3ead0110190c2a6c18d82df7127e1ac92222233",
      "parents": [
        "f63e3f3cc8c61bc9eeda980f314795412eb03b79"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Sep 10 11:15:26 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Sep 10 11:19:57 2009 -0400"
      },
      "message": "MountService: Use correct icon for SD card notifications.\n\nChange-Id: Ia15847c48fce7957f1a376e173d39137b661d51c\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "b24e11baac589fe16426f2d243b460ab84991c7b",
      "tree": "fff4842c3fe188414743e077294984a1f0389a7c",
      "parents": [
        "de893f550301a60274e87aa8168225e7a7a42184"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Sep 08 17:40:43 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Sep 09 10:52:18 2009 -0700"
      },
      "message": "API_CHANGE\n\nDeprecate BluetoothError.java.\n\nI spent a lot of time experimenting with a class BluetoothError to enumerate\nthe many error codes returned by the Bluetooth API. But at the end of the day\nthey were never used. The vast majority of method calls only really need a\ntrue/false error value, and often not even that.\n\nMethods which do need more detailed error enumeration (for example, bonding\nfailures) can have there own enumerated error codes. But there is no need\nfor a common set of error codes.\n\nAlso change the IPC failed warnings in BluetoothA2dp to Log.e. These indicate\na very serious error.\n\nIntroduce BluetoothAdapter.ERROR and BluetoothDevice.ERROR as helper sentinel\nvalues.\n"
    },
    {
      "commit": "de893f550301a60274e87aa8168225e7a7a42184",
      "tree": "c8458bccf747e7c8035c349d42b13616fc1d5ac8",
      "parents": [
        "100f08613392c225b8dff3f1e1d586f981884e29"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Sep 08 13:15:33 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Sep 09 10:52:02 2009 -0700"
      },
      "message": "API_CHANGE\n\nAnother round of Bluetooth API clean up, javadoc\u0027ing and unhide\u0027ing.\n\n-- Symbols for getting/setting bluetooth state --\nBluetoothAdapter.ACTION_STATE_CHANGED\nBluetoothAdapter.EXTRA_STATE\nBluetoothAdapter.EXTRA_PREVIOUS_STATE\nBluetoothAdapter.STATE_OFF\nBluetoothAdapter.STATE_TURNING_ON\nBluetoothAdapter.STATE_ON\nBluetoothAdapter.STATE_TURNING_OFF\nBluetoothAdapter.isEnabled()\nBluetoothAdapter.getState()\nBluetoothAdapter.enable()\nBluetoothAdapter.disable()\n\n-- Symbols for getting/setting scan mode --\nBluetoothAdapter.ACTION_SCAN_MODE_CHANGED\nBluetoothAdapter.EXTRA_SCAN_MODE\nBluetoothAdapter.EXTRA_PREVIOUS_SCAN_MODE\nBluetoothAdapter.SCAN_MODE_NONE\nBluetoothAdapter.SCAN_MODE_CONNECTABLE\nBluetoothAdapter.SCAN_MODE_DISCOVERABLE\nBluetoothAdapter.getScanMode()\nBluetoothAdapter.setScanMode()\n\n-- Symbols for getting address/names --\nBluetoothAdapter.getAddress()\nBluetoothAdapter.getName()\nBluetoothAdapter.setName()\n"
    },
    {
      "commit": "f9e0e6bd5e070d4c213e0237fa2fb8d4bb558bcb",
      "tree": "4cc1de3d637b0a74ed225452bbd5257bcebb8813",
      "parents": [
        "377c5c15f8fea14b575b6b0f14ac7fd3a4d44b3a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Sep 08 16:24:36 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Sep 08 16:24:36 2009 -0400"
      },
      "message": "Fix b/2105945 - Windowshade not closed when device locked.\n"
    },
    {
      "commit": "eb034652c2037a47ebfd99779e8383bb8bb528af",
      "tree": "0d4f6d9b752d6be70083cdf51085872e52610c3b",
      "parents": [
        "9c93007bcdf684cd15fd9db0cf1eae238dd38191"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 07 00:49:58 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 07 22:48:02 2009 -0700"
      },
      "message": "Implement all of the infrastructure for configuring wallpapers.\n\nActually being able to configure a wallpaper relies on additional\nwork in the launcher and wallpapers that will be in another change.\nAlso note that this breaks all existing wallpapers, since they now\nneed to include a meta-data item about themselves.  This also\nwill be fixed in another change.\n\nChange-Id: I97d2c2bd07237abc32f92b9147c32530a2f73c71\n"
    },
    {
      "commit": "c916c04495292c86051a2c31e90cca26a9bd99c1",
      "tree": "b5a2198c570efcd9ca9174e82b0eab4150bb5436",
      "parents": [
        "510469fbe1ad44c3c6255afb236f51502b6960cc",
        "0586a1b77a788a119166a37fccd909bf9ed65f23"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 07 10:16:20 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 07 10:16:20 2009 -0700"
      },
      "message": "Merge change 24099 into eclair\n\n* changes:\n  Fix issue #2095422: Some fades from opaque to transparent don\u0027t work\n"
    },
    {
      "commit": "510469fbe1ad44c3c6255afb236f51502b6960cc",
      "tree": "02da9bd09191b3522d4a65ae95294e23ccbf9bbc",
      "parents": [
        "96f8613d95122a491a44f755f06845cc2c13e81e",
        "a1e989b5755ea171ebe6875994d9174deee4399a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 07 10:14:44 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 07 10:14:44 2009 -0700"
      },
      "message": "Merge change 24098 into eclair\n\n* changes:\n  Fix bug where we wouldn\u0027t release remote provider references.\n"
    },
    {
      "commit": "0586a1b77a788a119166a37fccd909bf9ed65f23",
      "tree": "274272fd870b2cde2215b086138f557622cef8f2",
      "parents": [
        "88e625795943dea84b2e7c32f37e71303143b728"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 06 21:08:27 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 07 01:01:15 2009 -0700"
      },
      "message": "Fix issue #2095422: Some fades from opaque to transparent don\u0027t work\n\nViewRoot was using Surface.clear(), which has different behavior\nin different processes -- in the system process it would kill the\nsurface, causing all windows in that process to immediately disappear\ninstead of animating away.\n\nThis change makes Surface.release() public and uses that instead.  It\nalso renames Surface.clear() to Surface.destroy().\n\nAlso fixed some issues in the window manager that were causing the\nwallpaper to not get immediately resized when the orientation changes\nand its target window is removed and re-added.\n\nChange-Id: I2a992e365cf5747511f0bf1193db32dc2525b218\n"
    },
    {
      "commit": "a1e989b5755ea171ebe6875994d9174deee4399a",
      "tree": "faf1e8694283ece60a86ca2c61aa8c4b78483d7b",
      "parents": [
        "6e4b7d66998b9ec9255767f6070a2f94d83944a5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 01 19:54:29 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 06 21:15:41 2009 -0700"
      },
      "message": "Fix bug where we wouldn\u0027t release remote provider references.\n\nThe check for whether the release call is coming from another process was\nvery broken, and just happened to work by chance.  It also never worked for\napps that had code running in two different processes, with one process\nusing a provider in another of its processes.  Also a little cleanup and\ndebugging logs for provider management, and removal of that increasingly\nannoying log about services being stopped.\n\nChange-Id: Ibc298e674db7d35c4b6499fb32e30929a141b670\n"
    },
    {
      "commit": "e540833fdff4d58e37c9ba859388e24e2945ed45",
      "tree": "d1ec39dba3be85a50a1ac8556ab6d68b49d927b6",
      "parents": [
        "9cc1817d46d8092865d8f1e7a6391dcae197a26a"
      ],
      "author": {
        "name": "Bob Lee",
        "email": "crazybob@crazybob.org",
        "time": "Fri Sep 04 18:31:17 2009 -0700"
      },
      "committer": {
        "name": "Bob Lee",
        "email": "crazybob@crazybob.org",
        "time": "Sat Sep 05 11:53:18 2009 -0700"
      },
      "message": "Integrated the profiler into the framework. We run it all the time if the persist.sampling_profiler\nsystem property is set. Saves snapshots to the SD card.\n"
    },
    {
      "commit": "25994b4306a256b88d79159106834c9f114e6943",
      "tree": "bd6189443ff082f07761f5ace7ad013eba66da86",
      "parents": [
        "107039f94888fce212e0965b74971727d2b01b82"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 04 14:21:19 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 04 14:28:42 2009 -0700"
      },
      "message": "Wallpapers: new transitions, hiding when not visible, other cleanup.\n\nThis is work on the transitions with wallpapers.  There are now new\nanimations specifically for leaving the wallpaper and returning to\nit, which allow us to have a consistent animation when entering home\nand returning to it.  I also renamed the existing animations across\nwallpapers, and cleaned up some junk in the various interpolators.\n\nThis also now hides the wallpaper surface when it is not visible,\nto get rid of the wallpaper flickers people complained about albeit\nin a somewhat brutal way. :)  (Though really returning us to the\nprevious behavior with the same previous bugs and name back to them\nnot being very visible, yay!)  There is are also some bug fixes\nhere and there about managing the wallpaper visibility that this\nchange revealed.\n\nChange-Id: I913990a9a81651728122ed2e1101b75ed2c36fcb\n"
    },
    {
      "commit": "445f43081e207ee704a5152a5333054d7b4e13a4",
      "tree": "84adb97b95e2b72f1dc354f98094f6eb275d51bf",
      "parents": [
        "7111904802934e1fa4cf68c445f13c34c30c9cdb"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Sep 04 11:06:46 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Sep 04 11:06:46 2009 -0400"
      },
      "message": "NotificationManagerService: Only blink red battery low LED when not charging.\n\nChange-Id: Ie5836ae99d4ca19d9d062e7c78c8b40cd8d6c29d\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "dd9b82c283815747b75fe4434c65e4b6c9c9b54f",
      "tree": "43b783b4c76db57f1e526d85e92ae3309079b043",
      "parents": [
        "19d6f7ac27448b59c936878756bad49f623a6a99"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 03 00:18:47 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 03 14:11:02 2009 -0700"
      },
      "message": "Add better service reporting.\n\nThis will be used elsewhere.\n\nChange-Id: Id561fa7fed5eb65446312cb697813483903d33a6\n"
    },
    {
      "commit": "d42685d5de1dbd6d75b48d42418f370adaa4daef",
      "tree": "f175b669f7f5e888fc9454478d52c8df23c50868",
      "parents": [
        "1a3af62bfb3583ac2fece18523927587b6b6a277"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Sep 03 09:25:22 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Sep 03 13:47:54 2009 -0400"
      },
      "message": "Add support for running apps with uid/gid AID_LOG by specifying android.uid.log in the manifest\n\nThis is needed to allow the BugReportService to start the dumpstate service.\n\nChange-Id: I12cab23767c919592da102c654b6b80416717661\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "e3c393d3d14dab5b1eab37d2c52b7283df253f7f",
      "tree": "63e7b8becc207bc0aff95dcc2f9a53a39a03efed",
      "parents": [
        "e2c9187b993a652fa8fdad516461ab66caa96cb4",
        "cc27870098a5b6105d6007a18bebaec8940db2d5"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 02 23:11:16 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 02 23:11:16 2009 -0700"
      },
      "message": "Merge change 23787 into eclair\n\n* changes:\n  Fix issue #2097313: Latin IME crashes first use\n"
    },
    {
      "commit": "cc27870098a5b6105d6007a18bebaec8940db2d5",
      "tree": "bf1867f2775722823a68982c284ebc7ca4781281",
      "parents": [
        "fb16e5ccdb230a11cbbbfd17d323db7b88395c2f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 02 23:07:23 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 02 23:08:45 2009 -0700"
      },
      "message": "Fix issue #2097313: Latin IME crashes first use\n\nChange-Id: I50c48b66aff5aff42e71058591d20775eba73fed\n"
    },
    {
      "commit": "bdd52b264af8f562dd368d40b66771c88d45127f",
      "tree": "bb059c0e6b0032be61f8154f7fa49865503724f0",
      "parents": [
        "fb16e5ccdb230a11cbbbfd17d323db7b88395c2f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 02 21:46:19 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 02 21:54:18 2009 -0700"
      },
      "message": "Fix issue #2097060: Screen all messed up when setup wizard finished\n\nThe new code to rebuild the window list was missing some app tokens.\nAlso there were a few other smaller bugs floating around.\n\nChange-Id: I7734917af0b76ee4aa304e6a5321401d87640f89\n"
    },
    {
      "commit": "a34f1ad7c3a68d971e6332aa2fb1c16d083920b3",
      "tree": "1bfa09439ef3130cb5dacde84fc8dce44dac1a70",
      "parents": [
        "75f1d43b64cbf4b68ad62919a0c58907933ccd59"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 02 13:26:28 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 02 17:39:54 2009 -0700"
      },
      "message": "Fiddle system boot ordering.\n\nThis makes the system a little more careful to not start third party\ncode until it is ready to.\n\nAlso fix a little bug in SyncManager that would cause it to crash\nduring boot if sync was in a failure state.\n\nChange-Id: Ib2d287d8441d155d393fe740a5f98690895fd358\n"
    },
    {
      "commit": "a8f6018d6c2d28313f9550fa8fcb39c2f607e09c",
      "tree": "a64e1d3e4b63e2792ab93ee69d913b415925d814",
      "parents": [
        "14de0880dd7b716f39b822917e874ca5e579ff37"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 01 19:01:50 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 02 17:20:25 2009 -0700"
      },
      "message": "Work on issue #2079167: Flickering issue across multiple UI\n\nThis addresses a few parts of the bug:\n\n- There was a small issue in the window manager where we could show a window\n  too early before the transition animation starts, which was introduced\n  by the recent wallpaper work.  This was the cause of the flicker when\n  starting the dialer for the first time.\n\n- There was a much larger problem that has existing forever where moving\n  an application token to the front or back was not synchronized with the\n  application animation transaction.  This was the cause of the flicker\n  when hanging up (now that the in-call screen moves to the back instead\n  of closing and we always have a wallpaper visible).  The approach to\n  solving this is to have the window manager go ahead and move the app\n  tokens (it must in order to keep in sync with the activity manager), but\n  to delay the actual window movement: perform the movement to front when\n  the animation starts, and to back when it ends.  Actually, when the\n  animation ends, we just go and completely rebuild the window list to\n  ensure it is correct, because there can be ways people can add windows\n  while in this intermediate state where they could end up at the wrong\n  place once we do the delayed movement to the front or back.  And it is\n  simply reasuring to know that every time we finish a full app transition,\n  we re-evaluate the world and put everything in its proper place.\n\nAlso included in this change are a few little tweaks to the input system,\nto perform better logging, and completely ignore input devices that do not\nhave any of our input classes.  There is also a little cleanup of evaluating\nconfiguration changes to not do more work than needed when an input\ndevices appears or disappears, and to only log a config change message when\nthe config is truly changing.\n\nChange-Id: Ifb2db77f8867435121722a6abeb946ec7c3ea9d3\n"
    },
    {
      "commit": "f52e9f703305a03e76f59ad41094c5bc8636d31c",
      "tree": "5f7ba99e6646224a88cfaf7c268863e9e8a978df",
      "parents": [
        "983b837ea1effc462ecd9c14620b19178f98fd92",
        "e1b4437dba7c33566af55d4e5d27d35729678684"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 02 15:35:01 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 02 15:35:01 2009 -0700"
      },
      "message": "am e1b4437d: Revert \"Fix content provider\"\n\nMerge commit \u0027e1b4437dba7c33566af55d4e5d27d35729678684\u0027 into eclair\n\n* commit \u0027e1b4437dba7c33566af55d4e5d27d35729678684\u0027:\n  Revert \"Fix content provider\"\n"
    },
    {
      "commit": "0214e9475fa3b9aa00a784b5152bf4f1939c941e",
      "tree": "20b77f6204cfb82d8cde013472053ca191dadd20",
      "parents": [
        "bb54f93ff66f382dc706b9fff508d386e046fdc2"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Sep 02 11:03:18 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Sep 02 12:32:32 2009 -0700"
      },
      "message": "    For intent ACTION_PACKAGE_CHANGED, there could be a lot of broadcasts related to enabling/disabling\n    components by apps which could result in thrashing on the PackageManager. For apps that\n    do not want to be restarted when such a broadcast is sent, we can just aggregate these broadcasts and\n    handle them at one go.\n    Changes include:\n    New structure to hold pending broadcasts by class name. If a component is enabled or disabled frequently\n    aggregate component enabled/disabled settings in this structure in a 10 second window and then\n    send out the accumulated list of broadcasts to the ActivityManager.\n    A new Handler implementation handles this message\n    Add new attribute name EXTRA_CHANGED_COMPONENT_NAME in broadcast intent Intent.ACTION_PACKAGE_CHANGED for\n    additional information for apps like Launcher.\n    Rename a couple of parameters, the names were too jarring.\n"
    },
    {
      "commit": "5e1ab335e6e8fbfa19c64d53880a22f472010953",
      "tree": "4da429b3833ff29256d23f9e2e7f1b3a41715b65",
      "parents": [
        "c937b5ce4ff2f39fd9c60f718f98550a932b62f0"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Tue Sep 01 20:32:49 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Tue Sep 01 20:59:36 2009 -0700"
      },
      "message": "Expand apps\u0027 control over the settings restore process\n\nApplications can now specify two more aspects of the restore process:  whether\nthey need to run with their own custom Application subclass rather than being\nlaunched in the usual restricted mode during restore, and whether it\u0027s okay for\nthe backup manager to kill the app process once restore has completed.  The new\nmanifest attributes for these are, respectively, android:restoreNeedsApplication\nand android:killAfterRestore.\n\nIf unspecified in the manifest, restoreNeedsApplication is false, and\nkillAfterRestore is true.\n\nIn order to support kill-after-restore cleanly, this change also adds a new\nsystem-process-only interface to the Activity Manager, which will schedule a\n\"commit suicide\" event on the target app\u0027s main thread looper.\n\nThe framework backup agents have been given the appropriate new backup\nattributes as well.\n"
    },
    {
      "commit": "e1b4437dba7c33566af55d4e5d27d35729678684",
      "tree": "b19d6696816a2892cea093dab422becd50e9a21f",
      "parents": [
        "c804efe278fa33555e6e836504a467cb14505eb3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 01 19:21:08 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 01 19:21:08 2009 -0700"
      },
      "message": "Revert \"Fix content provider\"\n\nArgh!\n\nThis reverts commit da706900f45dca82d89f090e4e52fa5d1772c495.\n"
    },
    {
      "commit": "ff0dc82c1cfe780e6f4c87d1d34de6dc3b741a2d",
      "tree": "f88ea0a73df05a08f1de2b61d3b1e39b31a44ad3",
      "parents": [
        "cc22efb52e8b5851b7d53099f7f814bfae266124",
        "6a98f8d93e4ddd407baad8d9b7481a892001d281"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 01 19:11:44 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 01 19:11:44 2009 -0700"
      },
      "message": "am 6a98f8d9: Merge change 23499 into donut\n\nMerge commit \u00276a98f8d93e4ddd407baad8d9b7481a892001d281\u0027 into eclair\n\n* commit \u00276a98f8d93e4ddd407baad8d9b7481a892001d281\u0027:\n  Fix content provider\n"
    },
    {
      "commit": "da706900f45dca82d89f090e4e52fa5d1772c495",
      "tree": "bad5a815faa00061a779e7ad4f7f208228837182",
      "parents": [
        "56205fea879543a50bb797016832416a8b48cabb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 01 13:57:11 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 01 13:57:11 2009 -0700"
      },
      "message": "Fix content provider\n"
    },
    {
      "commit": "3025ef332c29e255388f74b2afefe05f64bce07c",
      "tree": "b7982d9ebe8a578b5b439c564c014a9af8be952f",
      "parents": [
        "d9942b5cb1662638bb6fb57c12a06976e3c34651"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 31 21:31:47 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 01 11:16:25 2009 -0700"
      },
      "message": "Various infrastructure to support a running services UI.\n\nSome of this is temporary (in particular the two approaches for getting\nprocess memory, one working but horrible, the other not working but\npreferred) until I figure out the best way to do it.\n\nChange-Id: I8c8f25062d481fcea22a47d459b083d2fd8a5040\n"
    },
    {
      "commit": "9aa1fa2d3612d1d8ffeae6552d65669f4ca194d9",
      "tree": "21545e2ec4c53e65147b3f4129afd16b4e3fe89d",
      "parents": [
        "3a76fd627945c1df59aa0318867401e0e53da022"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 01 07:51:15 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 01 07:51:15 2009 -0400"
      },
      "message": "LocationManagerService: Remove caching of last known locations to flash.\n\nChange-Id: Ibbab20a7c48823fb74c2e175824f55248f25bf8a\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "3a76fd627945c1df59aa0318867401e0e53da022",
      "tree": "a0ab42bcd122a4f61ab9aa688b8d10edf34f72f4",
      "parents": [
        "2bd4326a4694ea3055dc758c05533c905ad78291"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 01 07:26:56 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 01 07:26:56 2009 -0400"
      },
      "message": "LocationManagerService: Add null pointer check and remove useless finalize() method.\n\nChange-Id: I4017d38a1bea7564a85575486a7c2aef569dfe5d\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    }
  ],
  "next": "b0a054048329c31948c2f5dbcc11b6f99e454177"
}
