)]}'
{
  "log": [
    {
      "commit": "3799bc241b5cfc876cf082fbf39acc67c90a25b7",
      "tree": "4b3db9da132550555973070a886d5adb9a85931e",
      "parents": [
        "f7598245489c6d28c2673acd269ada2e6e834065"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 16:13:56 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 16:13:56 2009 -0700"
      },
      "message": "Track install/removal/update of packages that provide backup services\n"
    },
    {
      "commit": "b1d790b63e2115be558d451efbc914d1f8dfa846",
      "tree": "9f322b0eeab2171d6d2af0be67dcb816d190fc52",
      "parents": [
        "9a6f25033c51390cbcc4eec38f27e0ac35e97f1c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 12:38:21 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 12:38:21 2009 -0700"
      },
      "message": "Pass null as savedState to indicate a full backup is required\n"
    },
    {
      "commit": "46758123868d91e7b186aebb27c4c4988dede43e",
      "tree": "dacb54c6da67d1ed7f355a956fc0b335d77af4b8",
      "parents": [
        "c770ed8a6bb7614ed4a85a672e4e6830bed19a95"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 11:22:00 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 11:24:27 2009 -0700"
      },
      "message": "Add a Backup Manager interface to request a full backup\n\nGiven a package name, the Backup Manager schedules a *full* (i.e. non-\nincremental) backup pass for that package.  Also added the state-file\nhandling for distinguishing to the target between the full and incremental\nbackup requests.\n"
    },
    {
      "commit": "dccc39b17ab85ad5b970dc299d95c0b53b4e7f25",
      "tree": "62f59b775fe44cdc8488e2da7803f756bc0a3117",
      "parents": [
        "3ed8b3dc42800068951332aea024f9737c25a0ed",
        "231cc608d06ffc31c24bf8aa8c8275bdd2636581"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 16:17:25 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 16:17:25 2009 -0700"
      },
      "message": "Merge change 777 into donut\n\n* changes:\n  Rewrite SyncStorageEngine to use flat files and in-memory data structures.\n"
    },
    {
      "commit": "f417247fa68524f2f34960f7389168eed7eb4a88",
      "tree": "96725ef9323a5617a117c3d8a2944c39f196677d",
      "parents": [
        "06d96020c35dac2bf1651cb8bd4cfced911f1142"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue May 05 15:50:03 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue May 05 15:50:03 2009 -0700"
      },
      "message": "Further development of backup file handling\n\n    Put backup data in flight into /cache\n    Close the files and delete the intermediates after backup pass\n"
    },
    {
      "commit": "231cc608d06ffc31c24bf8aa8c8275bdd2636581",
      "tree": "9b435c670f0f16751a21ae4678bfbed7d8e159b4",
      "parents": [
        "06d96020c35dac2bf1651cb8bd4cfced911f1142"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 27 17:10:36 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 05 15:40:53 2009 -0700"
      },
      "message": "Rewrite SyncStorageEngine to use flat files and in-memory data structures.\n\nThe previous implementation used a database for storing all of its state, which could cause\na significant amount of IO activity as its tables were updated through the stages of a sync.\nThis new implementation replaces that in-memory data structures, with hand-written code\nfor writing them to persistent storage.\n\nThere are now 4 files associated with this class, holding various pieces of its state that\nshould be consistent.  These are everything from a main XML file of account information that\nmust always be retained, to a binary file of per-day statistics that can be thrown away at\nany time.  Writes of these files as scheduled at various times based on their importance of\nthe frequency at which they change.\n\nBecause the database no longer exists, there needs to be a new explicit interface for\ninteracting with the sync manager database.  This is provided by new APIs on IContentService,\nwith a hidden method on ContentResolver to retrieve the IContentService so that various\nsystem entities can use it.  Other changes in other projects are required to update to the\nnew API.\n\nThe goal here is to have as little an impact on the code and functionality outside of\nSyncStorageEngine, though due to the necessary change in API it is still somewhat extensive.\n"
    },
    {
      "commit": "22b8787ed4be8d4b7ed5d54802f9913fedb41425",
      "tree": "1055eb6988e1265fa75dbf0ab9f7d08c694c481f",
      "parents": [
        "636274185ed5ee75faf6ef4d84bbb7d5b0371248"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon May 04 16:41:53 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon May 04 20:19:21 2009 -0700"
      },
      "message": "Squashed commit of the following:\n\nAuthor: Christopher Tate \u003cctate@google.com\u003e\nDate:   Mon May 4 16:38:11 2009 -0700\n\n    IBackupService now passes ParcelFileDescriptors rather than int fds\n\n    The outlines of backup state file / data file handling are now in place as well\n    in the BackupManagerService.\n\nAuthor: Christopher Tate \u003cctate@google.com\u003e\nDate:   Thu Apr 30 12:40:19 2009 -0700\n\n    Hide the backup stuff for now\n\n    Also adjust based on comments:\n    + changed service intent string to conform to usage guidelines\n    + only publish the IBackupService binder when invoked with the right\n      intent action\n    + docs tweaks\n"
    },
    {
      "commit": "3413b8983a3af1c44ab7bafd186a56a5a116e5cc",
      "tree": "b6f540b517eb92d8611ca85b4d6e02ac9078f6eb",
      "parents": [
        "854c8c78c1bce214f6479772d94147070ec6764f"
      ],
      "author": {
        "name": "Owen Lin",
        "email": "owenlin@google.com",
        "time": "Fri May 01 17:12:32 2009 -0700"
      },
      "committer": {
        "name": "Owen Lin",
        "email": "owenlin@google.com",
        "time": "Fri May 01 19:31:33 2009 -0700"
      },
      "message": "Let screenOrientation\u003d\"behind\" works as expected\n"
    },
    {
      "commit": "275555c8eb3fb5df6e7320873b88b77cdde85a9e",
      "tree": "96c3bfe004179e2c08e87bf8784ad278dfdfe53d",
      "parents": [
        "767db0a1ec760042b145e7c19a672c7180ad10f3"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 01 11:30:34 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 01 15:06:31 2009 -0400"
      },
      "message": "location: Add support for location providers outside of the system process.\n\nAlso added new permissions android.permission.INSTALL_LOCATION_PROVIDER\nand android.permission.INSTALL_LOCATION_COLLECTOR to the public API.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "15e3d0f082d551f8819fbe4b0d502cc108627876",
      "tree": "ee0b12d89c14986b5447e7a000fd2a3f91fb6c13",
      "parents": [
        "a56b318cf2d4c3700899f9de394c5635761dda66"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 01 07:53:28 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 01 08:24:47 2009 -0400"
      },
      "message": "location: Use ILocationProvider Binder interface for all location providers.\n\nThis change eliminates the LocationProviderImpl class which had been used\nfor location providers running in the system process.\nNow the LocationProvider base class is only used to implement the\nLocationManager.createProvider() method for retrieving provider information.\nAdded a new IGpsStatusProvider interface for providers that serve GPS status.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "54796e740584b50323fe742a27e5d3f5be01ca06",
      "tree": "642dc67260a8a17a2ff1b1f95b39487ed82a7c05",
      "parents": [
        "36742528f89fd13e65c8652cc684cffc9e97b567"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Apr 30 15:16:30 2009 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Apr 30 15:16:30 2009 -0700"
      },
      "message": "Make the home screen come up in the simulator.\n"
    },
    {
      "commit": "a8bf815c6153290b173f34b071dddb0a0034a115",
      "tree": "0fa451a3a1035092ce916e3d6a25b8e8553f03bd",
      "parents": [
        "487529a70cd1479ae8d6bbfb356be7e72542c185"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Apr 30 11:36:21 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Apr 30 11:36:21 2009 -0700"
      },
      "message": "Add android.backup.BackupManager\n\nAlso tweak the dataChanged() api to have the client supply a package name.  We\ndon\u0027t necessarily TRUST this, but we use it to narrow the set of packages requesting\na backup pass, no longer blithely scheduling a pass for all packages associated\nwith the caller\u0027s uid.\n"
    },
    {
      "commit": "487529a70cd1479ae8d6bbfb356be7e72542c185",
      "tree": "ca19a948a28e9d4eb7b4c9890b006e43b89d7a6d",
      "parents": [
        "dc67739af90aa31a0b546c14bf1e68e6acbb8375"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Apr 29 14:03:25 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Apr 29 14:49:30 2009 -0700"
      },
      "message": "First baby steps towards settings backup\n\nThis change adds a sketched outline of the backup system architecture, with\nall of the major pieces represented other than client-side helpers for\nspecific types of data.  IBackupManager and BackupService are public so that\nwe can write test apps against SDK-domain symbols from the outset.\n\nWhat code exists in this change hasn\u0027t been tested and may crash.  It\u0027s the\nbeginnings of the real implementation but of course is barely begun.\n"
    },
    {
      "commit": "662ea09a71ab241774456f7bd4791a3532904da3",
      "tree": "0ec2f476da8848d85cd4b03202f9369098b0c79e",
      "parents": [
        "5f2788bc9d947f7793aaea06f7e21d6b74c98826"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 28 16:56:30 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 28 21:38:06 2009 -0400"
      },
      "message": "location: Optimize use of mProviders ArrayList.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "b8adcad61d9225ecdabde1a01b73455f484cbed7",
      "tree": "b88cf6f21915391f1fbc1f0a910112215aeafd57",
      "parents": [
        "79762a3ee34eb8be5549bcb183af844b6f19c266"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 28 13:23:57 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 28 13:23:57 2009 -0400"
      },
      "message": "location: Remove obsolete fake provider support.\n\nNow that we have GPS support in the emulator and public APIs for mock providers,\nthe fake provider support is no longer needed.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "79762a3ee34eb8be5549bcb183af844b6f19c266",
      "tree": "e3cf612d4596fc4f5edf8f2edfab81776de48d79",
      "parents": [
        "eedf815a2bd44c365a6885553a52cd2fcbfdce8c"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 28 11:31:44 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 28 12:42:08 2009 -0400"
      },
      "message": "location: Move DummyLocationProvider.java and LocationProviderImpl.java to the internal package.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "3d12b51ee38537f6760a833618948f936e75561d",
      "tree": "18429d3fc13f7dd8850522d2b56a08033104a3c8",
      "parents": [
        "17f213bc528cf296e133e9ec9c9e0ce5dce41781"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 23:25:35 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 28 07:28:33 2009 -0400"
      },
      "message": "location: Run LocationManagerService in a separate thread.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "48f17518223a2917fd82195004fbb206cb9a05a3",
      "tree": "d87449f59ab8b22dada31f595c688bcee9bd3961",
      "parents": [
        "0a57e5b730beaea75c1c1b1ca51b40c463918b4d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Apr 23 09:12:08 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Apr 23 19:27:41 2009 -0700"
      },
      "message": "location: Location Manager wakelock cleanup, phase 2\n\nRemove two second timeout for wakelock when broadcasting events to\nlocation listeners. Instead, hold wakelock until receipt of the event\nis acknowledged, either via a Binder call or the\nPendingIntent.OnFinished interface.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "0b8ffd17bc6641fc522db3e842a868b6cdbf6d82",
      "tree": "ef8d5d562a1c8d61b997ed7ed522dc9034e85548",
      "parents": [
        "56137a258410bd08ecd0d9478f82816e1d0c6609",
        "1d442e0d990b581357f33f5463c7c5cb49b551e8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 22 18:33:57 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 22 18:33:57 2009 -0700"
      },
      "message": "Merge change 460 into donut\n\n* changes:\n  More optimization of dumpsys output.\n"
    },
    {
      "commit": "1d442e0d990b581357f33f5463c7c5cb49b551e8",
      "tree": "58963b9ba095e179ba7c63e52dfd525b93cb978e",
      "parents": [
        "a0c9e8526b094e3b4f2c2747622059215d00516f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 20 18:14:05 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 22 18:03:21 2009 -0700"
      },
      "message": "More optimization of dumpsys output.\n\nThere are three major classes of changes here:\n\n- Avoid writing lines where their values are often empty, false, or some other typical thing.\n- Use partial writes to the PrintWriter to avoid creating temporary strings.\n- Use StringBuilder where we need to generate real String objects (and where possible cache the result).\n"
    },
    {
      "commit": "a0e3cd3853da1d14da4918c49d25128622cf0610",
      "tree": "ade384126851d16b3905ac8fa95052cd1be123bb",
      "parents": [
        "9ce7217c8eb4141bda68b85641814958da58a7ab"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 21:27:33 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 21:27:33 2009 -0700"
      },
      "message": "Fix timing problem that was introduced when we removed location provider polling\n\nThe wake lock was not being held until after we enabled location tracking,\nso the check to see if the wake lock was held before propogating a\nnew location prevented us from receiving a network location as soon as we\nenabled the provider.\nThis check is not necessary anyway, so this change removes it.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "9ce7217c8eb4141bda68b85641814958da58a7ab",
      "tree": "dc3e526ad5922276cf884b9d90b26997bbd334ff",
      "parents": [
        "61fc286e8f7e33d0dd2a1e72ae9ef73ed3f42a00"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 20:18:41 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 20:18:41 2009 -0700"
      },
      "message": "location: Remove support for a message that never actually gets sent.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "61fc286e8f7e33d0dd2a1e72ae9ef73ed3f42a00",
      "tree": "51149a9de5eecf77bc638da2941343d0369e33b7",
      "parents": [
        "22b8f5e4b7b0ddd7ed5c90a8710036b549e8858d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 20:02:52 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 20:02:52 2009 -0700"
      },
      "message": "location: Remove unnecessary code that monitors the screen on/off state.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "3ea1f8759ddc0b714558d3c8f1e153d1d89f301f",
      "tree": "c49227d660d2cca920f45a4571b0af706dff44b6",
      "parents": [
        "1130ba283051da26a6ca53e2add854f7134bc552",
        "b30475ecef84303600302b6790420bcc66631bf0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 21 15:12:25 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 21 15:12:25 2009 -0700"
      },
      "message": "Merge change 372 into donut\n\n* changes:\n  WifiService: Cleanup parsing of wifi scan results.\n"
    },
    {
      "commit": "b30475ecef84303600302b6790420bcc66631bf0",
      "tree": "cc81531d98e8cda2a1e6c2188ac3f9cc3fff4830",
      "parents": [
        "31d40ab260bbf8b73a50dea29995192579a11947"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 13:55:07 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 13:55:07 2009 -0700"
      },
      "message": "WifiService: Cleanup parsing of wifi scan results.\n\nAlso add support for possitive RSSI values, fixing b/1786306\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "6de3154674a268b0e109990a1f4c2742dfdc9c66",
      "tree": "3250edcf85033305a6924482775db0e5334e5ea1",
      "parents": [
        "31d40ab260bbf8b73a50dea29995192579a11947"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 12:13:35 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 12:13:35 2009 -0700"
      },
      "message": "location: Add some null pointer checks.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "31d40ab260bbf8b73a50dea29995192579a11947",
      "tree": "70bd2ce89d435aa3104cd5abd9abb2f3ed58bd86",
      "parents": [
        "5261402c795aa3e5fb4807e70d38bfc98e76f750",
        "e2b44c5aaff312fbb00e66dd42b8444938017672"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 21 09:40:38 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 21 09:40:38 2009 -0700"
      },
      "message": "Merge change 360 into donut\n\n* changes:\n  location: Location Manager wakelock cleanup, phase 1\n"
    },
    {
      "commit": "e2b44c5aaff312fbb00e66dd42b8444938017672",
      "tree": "197313bebcf481c50c2f9fdcc40ce4fc7a880b94",
      "parents": [
        "98cb66797422c4ccdee6f1a07636146d784a471b"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 09:38:18 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 09:38:18 2009 -0700"
      },
      "message": "location: Location Manager wakelock cleanup, phase 1\n\nMove cell and wifi lock from LocationManagerService to NetworkLocationProvider\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "6d31eb895340f3b25f1388dd4ce1a4314de9a267",
      "tree": "e1f6659bafeab78dcce7d4c70ab74739b1d5dbd8",
      "parents": [
        "4482d8c8e41b02786efae97987394f60b68d6f6e",
        "42554c10b61f747c0689f2304f19a2af17b886ce"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "",
        "time": "Mon Apr 20 09:50:17 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Apr 20 09:50:17 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-donut\u0027 into donut\n"
    },
    {
      "commit": "42554c10b61f747c0689f2304f19a2af17b886ce",
      "tree": "6659b4ca768e109d0712f8bb6f5fa5527bc794c0",
      "parents": [
        "c64edde69d18498fb2954f71a546357b07ab996a"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "",
        "time": "Mon Apr 20 09:48:54 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Apr 20 09:48:54 2009 -0700"
      },
      "message": "AI 146934: Make TI Wifi driver choice framework-independent - part 1\n  BUG\u003d1786365\n\nAutomated import of CL 146934\n"
    },
    {
      "commit": "98cb66797422c4ccdee6f1a07636146d784a471b",
      "tree": "aed685bfa6fd15157085e3a1bb259ac4115ead15",
      "parents": [
        "981980e5da71e794d33eaea8c12bfe6e14745e90"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Apr 17 18:03:44 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Apr 17 18:06:18 2009 -0400"
      },
      "message": "More Location Manager cleanup:\n\nMove LocationCollector support out of GpsLocationProvider.\nDon\u0027t disable GPS when screen is off.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "2f82c4eb0b4d315481ad79725ad6f52c5ec69685",
      "tree": "ef64e238443565b8f3e39a5079e4db27e8cd64b5",
      "parents": [
        "21b5817aaa2f0a61edff8752ed85130aa8cf7def"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Apr 17 08:24:10 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Apr 17 17:00:32 2009 -0400"
      },
      "message": "location: Generalize support for location provider usage tracking.\n\nThis replaces two different mechanisms that were used for GPS and Netork\nlocation provider tracking.\nMove BatteryStats logging of GPS usage from LocationManagerService to\nGpsLocationProvider.\nClean up tracking of location listeners in LocationManagerService and remove\nsome HashMaps that are no longer needed.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a55c321329ae52a2db7a4f2bd36673a20b8f271d",
      "tree": "97ee2b13cf6c464305930be581bcf14c072e7a55",
      "parents": [
        "967f7c169c0ff8723a72fce7073f591dcfab018d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Apr 15 11:10:11 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Apr 15 11:17:37 2009 -0400"
      },
      "message": "location: Move geocoding support from ILocationProvider to a new interface.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f2aad4a468da1958bb12277d42754ccb42038537",
      "tree": "99d98bd1eff6727fc85ef81dfc6118c6f1d7b052",
      "parents": [
        "ab6f5c6e86276602605382be73b8df2b08ed494d",
        "f210d6b75e2c0fe60b90c074ff9f615c1137f23e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 13:15:43 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 13:15:43 2009 -0700"
      },
      "message": "Merge change 132 into donut\n\n* changes:\n  Let\u0027s do bug #1769910 actually right.\n"
    },
    {
      "commit": "f210d6b75e2c0fe60b90c074ff9f615c1137f23e",
      "tree": "112240b6d4c3d2d1f78e7badde174cbe11d1f31b",
      "parents": [
        "7680d67dc7445ba65a4fc4307afe24b20b333a52"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 13 18:42:49 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 13 18:42:49 2009 -0700"
      },
      "message": "Let\u0027s do bug #1769910 actually right.\n\nMy original implementation was computing averages and medians.  Now we do binning, as requested.  So much simpler, too!  In addition, it fixes a bug where when hoping across activities we were only accounting for the last activity as the total time; now we count the time from the start of the initial activity.\n\nThis also includes some reduction and optimization of the activity manager dumpsys output.\n"
    },
    {
      "commit": "0887540fa8cad30fa7688d3cd86904d61c9550c3",
      "tree": "f547c5f4b59e31382c6a7a535d3bb3a8f01f9030",
      "parents": [
        "b7c3675aefea21a4b49a19f5fd56fb93a55146c8",
        "cfe6524071624b6679e5fa4db847328e8d0317c8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 13 14:12:27 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 13 14:12:27 2009 -0700"
      },
      "message": "Merge change 63 into donut\n\n* changes:\n  Remove references to android.util.Config\n"
    },
    {
      "commit": "06ba55476ee9703c876d223cd41bd73c5f85f42d",
      "tree": "597ed553c488fdb9ff882887c45b1e2e1fe4f66f",
      "parents": [
        "4d08efb7d80db0e2d69c60a5fee6a923e440daac"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Apr 09 16:03:56 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Apr 09 16:03:56 2009 -0700"
      },
      "message": "Integrate new power connnect/disconnect broadcasts\n\nTwo new broadcasts, Intent.ACTION_POWER_CONNECTED and\nIntent.ACTION_POWER_CONNECTED, that are issued when the device is plugged\nand unplugged from USB or AC power.  This pulls two changes from the\nopen-source Gerrit repo into the internal Donut codeline:\n\n1241 fda6fae Added broadcasts for external power events.\n9491 37f8ca1 Fix system service crash when booting while on battery power\n\nThe current.xml API description has also been updated to include the\nnew Intent fields; the new API was approved in the original OSS change.\n"
    },
    {
      "commit": "cfe6524071624b6679e5fa4db847328e8d0317c8",
      "tree": "4600c8162173aa35874b2d9604a7a126692e652b",
      "parents": [
        "7680d67dc7445ba65a4fc4307afe24b20b333a52"
      ],
      "author": {
        "name": "Dave Bort",
        "email": "dbort@android.com",
        "time": "Thu Apr 09 14:51:04 2009 -0700"
      },
      "committer": {
        "name": "Dave Bort",
        "email": "dbort@android.com",
        "time": "Thu Apr 09 14:51:04 2009 -0700"
      },
      "message": "Remove references to android.util.Config\n\nThe semantics of Config.DEBUG will be changing soon, and all other\nConfig.* fields will become deprecated/hidden.\n"
    },
    {
      "commit": "7680d67dc7445ba65a4fc4307afe24b20b333a52",
      "tree": "de7e01c3ca8a952a4edbad57ea3f3b604e3f814a",
      "parents": [
        "50457c1fc2bea834e64490f95e9f7e424a162b46",
        "9ac932179c704822c7ae5c7accb02119b578254e"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "",
        "time": "Wed Apr 08 15:10:29 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 08 15:10:29 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-donut\u0027 into donut\n"
    },
    {
      "commit": "9ac932179c704822c7ae5c7accb02119b578254e",
      "tree": "4360e7ccadf2309d0b4a67a9e28fa1b4681dbcc7",
      "parents": [
        "939151f1eb3d2522ed952d14a9bb79235a5d7126"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "",
        "time": "Wed Apr 08 15:09:15 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 08 15:09:15 2009 -0700"
      },
      "message": "AI 145201: Hold wakelock while delaying for audio route switch after headset unplug.\n  Fixes bug where we go to sleep before switching audio, and we lose audio until the apps CPU wakes up again.\n  BUG\u003d1774615\n\nAutomated import of CL 145201\n"
    },
    {
      "commit": "6447ca30b8e41c22c7214f201120327057e356dc",
      "tree": "0cd18bdbb4f924b95567a36b1834115cc2fa6d3a",
      "parents": [
        "60a51818483dae32d18414a4f128ca057e267e8c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 07 19:50:08 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 07 19:50:08 2009 -0700"
      },
      "message": "Fix issue #1769910 (Track activity launch times)\n\nThe usage stats service now collects per-activity launch time stats.  There are a number of fixes and improvements to its statistics management and collection; it now operates its calendar in GMT and ensures that for checkin purposes it always reports one day and only one complete day to the checkin service.\n\nAlso change the checkin option from \"-c\" to \"--checkin\" since it is really a special thing.\n"
    },
    {
      "commit": "e932f7f2a47b770c636443d411436bd29cc4bb43",
      "tree": "75a53e7d58fd8b9524aa22e370854e4c65bba17e",
      "parents": [
        "53566b140ffa7b1e2f522ab1cdec13c74f8779e7"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "",
        "time": "Mon Apr 06 10:51:26 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Apr 06 10:51:26 2009 -0700"
      },
      "message": "AI 144663: Use Binder interfaces between NetworkLocationManager and LocationManagerService.\n  This fixes a hack that was added when NetworkLocationManager was moved out of the framework.\n  This also lays the groundwork for supporting location providers outside of the system process.\n  BUG\u003d1729031\n\nAutomated import of CL 144663\n"
    },
    {
      "commit": "f113fbe67b878b356fba11873276d7633ec1af22",
      "tree": "dca146b6f0ab178365f4ee7e80dd976ae33e4e73",
      "parents": [
        "66eb4acb89a5e54bdb5b9973e9a1c1b9853d154d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "",
        "time": "Mon Apr 06 05:17:28 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Apr 06 05:17:28 2009 -0700"
      },
      "message": "AI 144620: Clean up interface between NetworkLocationProvider and LocationManagerService (part 1)\n  Move broadcast receivers for wifi scan results and battery status\n  from LocationManagerService to NetworkLocationProvider\n  Add a Service for the NetworkLocationProvider, so we can install it from its\n  own thread rather than from BOOT_COMPLETED or callback from LocationManagerService.\n  (this Service was also required for receiving Intents in NetworkLocationProvider)\n  BUG\u003d1729031\n\nAutomated import of CL 144620\n"
    },
    {
      "commit": "66eb4acb89a5e54bdb5b9973e9a1c1b9853d154d",
      "tree": "e08d5314f3f6adc8e1bd4062bd92a2a4ccbfac85",
      "parents": [
        "b9db7c9f5a8924361ae2f439509e19993d82b884"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "",
        "time": "Sun Apr 05 14:50:22 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Sun Apr 05 14:50:22 2009 -0700"
      },
      "message": "AI 144599: Location Manager cleanup:\n  Move PhoneStateListener for listening to cell location changes from LocationManagerService\n  to the NetworkLocationProvider.\n  Move CellState class out of the core framework to the NetworkLocationProvider service.\n  NetworkLocationManager now notifies the collector of its state, rather than LocationManagerService.\n  BUG\u003d1729031\n\nAutomated import of CL 144599\n"
    },
    {
      "commit": "4e50b78bda9cd58be61581d2886c88ff6348a1c1",
      "tree": "e94551d77542bc0a06844d536e1eface70005dde",
      "parents": [
        "e84de8d702bd26fb1e5b55f3cfdd953d8a31ec22"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "",
        "time": "Fri Apr 03 08:24:43 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Apr 03 08:24:43 2009 -0700"
      },
      "message": "AI 144452: More Location Manager cleanup:\n  Remove 1 Hz \"heartbeat\" polling of location providers from LocationManagerService.\n  Now location providers report their location to LocationManagerService via\n  LocationManager.setLocation() rather than waiting to be polled.\n  This reduces GPS fix latency by up to one second.\n  Remove LocationProvderImpl.getLocation().\n  Since we are no longer polling, this method is no longer necessary.\n  BUG\u003d1729031\n\nAutomated import of CL 144452\n"
    },
    {
      "commit": "9637d474899d9725da8a41fdf92b9bd1a15d301e",
      "tree": "5383ecf1ab4bd1e34df329c276309b29dc8ef225",
      "parents": [
        "f80f5d02ed5793d1a9bf6f69885fa3c509e7d312"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "",
        "time": "Thu Apr 02 21:41:57 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 02 21:41:57 2009 -0700"
      },
      "message": "AI 144372: Cleanup Settings support for enabling and disabling location providers:\n  LocationManagerService now listens for changes to settings,\n  making LocationManager.updateProviders() unnecessary.\n  Removed LocationManager.updateProviders()\n  Added Settings.Secure.setLocationProviderEnabled(), which is a thread-safe way\n  of enabling or disabling a single location provider.\n  This is safer than reading, modifying and writing the LOCATION_PROVIDERS_ALLOWED directly.\n  BUG\u003d1729031\n\nAutomated import of CL 144372\n"
    },
    {
      "commit": "633a1740ce5951ccb5d478ba2795f6f4fada1646",
      "tree": "cf949ddcf6ba8c93f275cf666ff325385fe016c6",
      "parents": [
        "655434763fd0fffc5858301040f05d6e81b248b9"
      ],
      "author": {
        "name": "Evan Millar",
        "email": "",
        "time": "Thu Apr 02 16:36:33 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 02 16:36:33 2009 -0700"
      },
      "message": "AI 144333: Change the way the battery level tracking code works in BatteryStats. Before we simply kept track of the last\n  2 levels as recorded at plug and unplug events. During charge cycles this would be useful because it would tell us\n  what the start and end levels were in the last discharge cycle. However during a discharge cycle this information could\n  be misleading as it would give you the level at the last unplug event (beginning the the discharge cycle) and last plug\n  event (end of the previous discharge cycle).\n  Now we are still keeping track of 2 values, but they are \"discharge cycle start level\" and \"discharge cycle current level\".\n  During a discharge cycle this will give you the level the current discharge cycle started at, and the current level. During\n  a charge cycle the same data will be supplied as before (the start/end of the last discharge cycle).\n  B\u003d144249\n\nAutomated import of CL 144333\n"
    },
    {
      "commit": "e1ccba2113910acc95284abc1f1a0a477b8af36f",
      "tree": "81b4bb54402f8aafeed858bee5aadddc5e1d56f2",
      "parents": [
        "d30b2568cd309053e0e7a0ac7a433d8dafcd3e28"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "",
        "time": "Thu Apr 02 11:40:25 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 02 11:40:25 2009 -0700"
      },
      "message": "AI 144257: am: CL 144256 Need to show opt-in screen for location collection.\n  Added a screen to the setup wizard, after login, to ask user to\n  opt-in for location collection.\n  Added a dialog to Settings when user turns on Network location.\n  Fixed a security permission issue in LocationManagerService related\n  to this change.\n  Original author: yamasani\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 144257\n"
    },
    {
      "commit": "767a662ecde33c3979bf02b793d392aca0403162",
      "tree": "f55548c33a8267c39acc60f72051f9856e95e672",
      "parents": [
        "e9c08056fafab720856ab8516ea0e623a5c0e360"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "",
        "time": "Thu Apr 02 01:37:02 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 02 01:37:02 2009 -0700"
      },
      "message": "AI 144185: Integrate cdma into the main code base.\n\nAutomated import of CL 144185\n"
    },
    {
      "commit": "958b9adc086f126dcd757d29f0d7f443ae9064b2",
      "tree": "92b228051319ae7a1c33fb19a90da29009f074a7",
      "parents": [
        "d928d6837dee4df30b06529164326722075da063"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Tue Mar 31 18:00:36 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 31 18:00:36 2009 -0700"
      },
      "message": "AI 143899: am: CL 143896 Fix issue #1748954 and #1737952:\n  #1748954 (New status bar fades into all white background): FrameLayout wasn\u0027t updating its foreground drawable when its padding changed, which would happen as the status bar is shown and hidden.  To fix this I also ended up fixing a problem in the view debug stuff where we couldn\u0027t get a bitmap for a view that is the full screen size because it is too big...  actually I just went ahead and added another function to snapshot the view hierarchy which works a lot better for us anyway.\n  #1737952 (Home screen icons overlap with the notification bar after exiting any camera app): Originally I punted this because it only happened in rare situations, but now that home is always portrait it happens a lot more so it is more important to fix.  This involved a few things to clean up hiding/showing the status bar:\n  - We now determine when to hide and show it during layout, which allows us to do this at the time it is actually needed rather than during animation after we can actually catch it for the initial display of a window.  This required tweaking the layout API so the policy can request a second layout pass if needed.\n  - When doing layout, we are now much more aggressive about skipping the layout of windows.  Basically anything that we know will be hidden in the near future is ignored for layout, so that it doesn\u0027t glitch as it is transfered out of the screen.  The theory being that it is better to leave it as it was originally placed while we are transitioning it out, than to switch it to something slightly more correct.\n  Original author: hackbod\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 143899\n"
    },
    {
      "commit": "617f877c06c82584a38f41bb60d836e08c5e3bda",
      "tree": "7963da14cbb5f4b9e9d8c21fb518009a30bc6e11",
      "parents": [
        "ea600ccfb7568f60377c4abc85f56c80af7fdbfc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Tue Mar 31 15:04:46 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 31 15:04:46 2009 -0700"
      },
      "message": "AI 143800: am: CL 143748 Fix issue #1743326 (More battery stats)\n  Adds stats for:\n  - Number of raw user events that have happened in the system.\n  - Number of times user activity has been reported, dividied by UID and type of activity.\n  - Duration of screen brightness levels in 4 buckets.\n  - Per-UID tracking of who has turned on Wifi and how long we can attribute it being on because of them.\n  Original author: hackbod\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 143800\n"
    },
    {
      "commit": "5711fadfc48f0e77bc25a91ef36c76acb0d2f55a",
      "tree": "72f53d3fecaaf4e4d4e7465818fa7efdb1298392",
      "parents": [
        "2f3473798b3b4aef534c7e83263e5543b779087b"
      ],
      "author": {
        "name": "Eric Shienbrood",
        "email": "",
        "time": "Fri Mar 27 20:25:31 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 20:25:31 2009 -0700"
      },
      "message": "AI 143266: am: CL 143124 Fix bug #1731826, in which auto-connect to remembered networks does not\n  take place.\n  This has the same underlying cause as bug #1739874, so this fixes that\n  bug as well. The problem was that if the supplicant was in the DORMANT\n  state at the time a scan-only Wi-Fi lock was released, the command to\n  stop the Wi-Fi driver would never be issued. This had two main results:\n  first, the driver would stay awake when the screen was blank and it was\n  supposed to be sleeping, leading to excessive battery drain, and second,\n  when the screen was turned back on, there would be no DRIVER-STARTED\n  event generated (because the driver was already running). The\n  DRIVER-STARTED event is the trigger for the framework to issue a\n  RECONNECT command to the supplicant to cause it leave the DORMANT state\n  and look for available remembered networks.\n  To assist in tracking down this problem, and any such problems in the\n  future, I added four counters to keep track of how many times full and\n  scan-only Wi-Fi locks are acquired and released. The counter values\n  are output in the dump() method of WifiService. While doing this, I\n  noticed that because of missing \"break\" statements, the battery stats\n  that keep track of how much time Wi-Fi locks are held were including\n  the time for full locks in the time reported for scan-only locks.\n  Original author: ers\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 143266\n"
    },
    {
      "commit": "321ae681cad03d00ad1efc6f06f74268e00172a9",
      "tree": "83553a788514830976a28765e0fc55eef5fe1f5e",
      "parents": [
        "cb93c5a1a39bb4feaa776393f0d4afb5bf6aae26"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Fri Mar 27 16:16:03 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 16:16:03 2009 -0700"
      },
      "message": "AI 143173: am: CL 142879 Fix issue #1732012 (Only show screen rotation animation when triggered by sensor) -- set the new surface flag as appropriate.\n  Original author: hackbod\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 143173\n"
    },
    {
      "commit": "1e880dba106b14619c3eaf94c5dc2d1a943645bc",
      "tree": "ec31675d5556ce237bad813bc505ae88cbec9e58",
      "parents": [
        "c2d54f46ac13e029e6d53f7471cd9c90fe6bbfe9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Fri Mar 27 16:04:08 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 16:04:08 2009 -0700"
      },
      "message": "AI 143169: am: CL 142870 Fix issue #1724917 (Applications (browser, maps, gmail) fail to retain their landscape state after coming out of sleep mode).  We now rely on the listeners last known orientation, and make sure to clear it when enabling/disabling.\n  Also do most of the work for issue #1732012 (Only show screen rotation animation when triggered by sensor).  This just needs to be hooked up to the surface flinger API when that appears.\n  Original author: hackbod\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 143169\n"
    },
    {
      "commit": "7ec434e2e179776d75c8a4da66dcfd2ee630c5d8",
      "tree": "a030538670a33a3b9a04da03d612326fb75d9df0",
      "parents": [
        "6ddfec1b193fb0ee9c55ae1f0648d6fcd66e7cd1"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "",
        "time": "Fri Mar 27 07:46:48 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 07:46:48 2009 -0700"
      },
      "message": "AI 143095: Location Manager cleanup: move MockProvider to a separate file.\n  BUG\u003d1729031\n\nAutomated import of CL 143095\n"
    },
    {
      "commit": "2ad63a9d773ba987e85ee6a23b0a0724d86d4b0e",
      "tree": "6a385eb148226973d6d6ecbe4f15e47c13d76846",
      "parents": [
        "2d8c060bbc590c0f398c7a2c7a8b3e35111929f4"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "",
        "time": "Wed Mar 25 17:36:48 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 25 17:36:48 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@142784,142784\n"
    },
    {
      "commit": "9ed4a4b0d7dadeadd57bd81e2cc538670d9654b9",
      "tree": "56013c48a17caee49d0f29abe72b5a3d4eac72a0",
      "parents": [
        "61be3ae6963019dc993efbc4282afe1266ca3928"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Wed Mar 25 17:10:37 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 25 17:10:37 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@142722,142722\n"
    },
    {
      "commit": "c485a60a32342ff4e5db5c707f28a0816b4c2ff4",
      "tree": "06289386e4586f12b237ce2ce2bba6292f2a5b16",
      "parents": [
        "3d78f9ab080c582443d1b78d933c899b52588fb2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Tue Mar 24 22:39:49 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 22:39:49 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@142397,142397\n"
    },
    {
      "commit": "627bba736d022c39696b7c582a6af5592d2b8c33",
      "tree": "42c0b064b345aa053ca63ff09e928f24705f9101",
      "parents": [
        "1d4613c1ec6ddf8aec3f723a7cab4253d19f9e66"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Tue Mar 24 22:32:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 22:32:56 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@142347,142347\n"
    },
    {
      "commit": "7379823e59e3769a9c547fe253def34bbffcaf38",
      "tree": "853c2248dda39b30fd8153751e2ef8f8dadc38f3",
      "parents": [
        "fd92c5743975663d2082177b88a3c3a1edaea442"
      ],
      "author": {
        "name": "Ed Heyl",
        "email": "",
        "time": "Tue Mar 24 21:32:21 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 21:32:21 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@142239,142239\n"
    },
    {
      "commit": "c4dd60fd4a8df20f01f3f43c3e7b15a5252f51a7",
      "tree": "09ad6063838c8752a2d866ca2564a89d3461c597",
      "parents": [
        "98594c73bf7bb30dae452a723449790760f3cd01"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "",
        "time": "Tue Mar 24 21:10:53 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 21:10:53 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@141958,141958\n"
    },
    {
      "commit": "96f4357e065124eda502ee5ad29b6d327d7ad446",
      "tree": "a939aa7ca2c29e0a17634b462a649f1d59ea6137",
      "parents": [
        "d906b720b8a8e6e527325f106ed87246d51a3571"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "",
        "time": "Tue Mar 24 20:27:49 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 20:27:49 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@141523,141523\n"
    },
    {
      "commit": "64c62ba503c73eee1fb647ffcc1b3df287640ab1",
      "tree": "7859fc4f6feadfc587531448dde61bafaa73a3e4",
      "parents": [
        "8a7dc17790b7f24e8e819eca46d14c4471230eba"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "",
        "time": "Tue Mar 24 20:13:57 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 20:13:57 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@141409,141409\n"
    },
    {
      "commit": "8a7dc17790b7f24e8e819eca46d14c4471230eba",
      "tree": "d5ecd0f83bda73c455bac6d3b7bb9949b5975c8e",
      "parents": [
        "886f3d69b79748fe937725e33b8bbb3d67ab82c7"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "",
        "time": "Tue Mar 24 20:11:42 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 20:11:42 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@141391,141391\n"
    },
    {
      "commit": "c1e8446279381bdd728688d10285951ef8228ed1",
      "tree": "09c0ac46e69f0c3aa8929ba64a6d6a5f3976a237",
      "parents": [
        "8faf457da6ab73b13c346a160c14302acbceadd7"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "",
        "time": "Tue Mar 24 19:29:20 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 19:29:20 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@141086,141086\n"
    },
    {
      "commit": "ef49c57bdcdb6c808870570c205434b002431c37",
      "tree": "999409fc7ae66386dcf087e9bfb8abca8e7c4fd7",
      "parents": [
        "9c7960dbd44fea285d21a289349801767180125b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Tue Mar 24 19:27:32 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 19:27:32 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@141079,141079\n"
    },
    {
      "commit": "e68ffcb5764152da6d36adc8f2918200b4472c23",
      "tree": "fe7ff65173581d017893e1bc59a53a39787ddf03",
      "parents": [
        "6c884ceb0bdee0c338949432b4de56523fa9d895"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "",
        "time": "Tue Mar 24 19:11:13 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 19:11:13 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@140997,140997\n"
    },
    {
      "commit": "128e729c493042d694df9d285ea390e25e2c3fde",
      "tree": "01a2eb494468d8ae453e1174b76b9f8668df87dd",
      "parents": [
        "f63220f58e29673eba1c6228c04b43fb680af5f2"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "",
        "time": "Tue Mar 24 18:41:31 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 18:41:31 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@140846,140846\n"
    },
    {
      "commit": "f63220f58e29673eba1c6228c04b43fb680af5f2",
      "tree": "9d8c495eb47af67b7537a393a7ccc996fa13c465",
      "parents": [
        "08905cc3362d8737290ceba96077aa2d234ab378"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Tue Mar 24 18:38:43 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 18:38:43 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@140828,140828\n"
    },
    {
      "commit": "d2bf42a96e052019d71f10cba652246fe09e09cb",
      "tree": "0874dd68eee96cf0f64561c04f33c2d4b68a33ef",
      "parents": [
        "c36bde662fd679d4cd74d786655ae39d097daf1c"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "",
        "time": "Tue Mar 24 18:31:12 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 18:31:12 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@140781,140781\n"
    },
    {
      "commit": "d4c5f8919b0522bcaab41a5863c313fec52d3a79",
      "tree": "f1465254ddd3ab57865aa5e77ff24ecfe3e47ba5",
      "parents": [
        "4a5c1a7e84a250eafe0e3a12d859c45747520d55"
      ],
      "author": {
        "name": "Eric Shienbrood",
        "email": "",
        "time": "Tue Mar 24 18:13:20 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 18:13:20 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@140679,140679\n"
    },
    {
      "commit": "105925376f8d0f6b318c9938c7b83ef7fef094da",
      "tree": "3b19ee2bd8704cb9c6a0da7e42dec6759183de6d",
      "parents": [
        "ba87e3e6c985e7175152993b5efcc7dd2f0e1c93"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 18 17:39:46 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 18 17:39:46 2009 -0700"
      },
      "message": "auto import from //branches/cupcake_rel/...@140373\n"
    },
    {
      "commit": "ba87e3e6c985e7175152993b5efcc7dd2f0e1c93",
      "tree": "ee35f76532767dc29411a8738a434d1d88d330f2",
      "parents": [
        "c39a6e0c51e182338deb8b63d07933b585134929"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 13 13:04:22 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 13 13:04:22 2009 -0700"
      },
      "message": "auto import from //branches/cupcake_rel/...@138607\n"
    },
    {
      "commit": "c39a6e0c51e182338deb8b63d07933b585134929",
      "tree": "e55fc5bd38b1eb8fb4851a0fe1cc264a7fe2f245",
      "parents": [
        "b2a3dd88a53cc8c6d19f6dc8ec4f3d6c4abd9b54"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 11 12:11:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 11 12:11:56 2009 -0700"
      },
      "message": "auto import from //branches/cupcake/...@137873\n"
    },
    {
      "commit": "b2a3dd88a53cc8c6d19f6dc8ec4f3d6c4abd9b54",
      "tree": "e167affc928677f3dd70e173150a77e3943e97a9",
      "parents": [
        "f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 09 11:52:12 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 09 11:52:12 2009 -0700"
      },
      "message": "auto import from //branches/cupcake/...@137197\n"
    },
    {
      "commit": "f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2",
      "tree": "3a24d2250b24d928cd5b67936affc4f0ac3b599b",
      "parents": [
        "53b404521227d30353f0f2421458103dff903626"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 05 20:00:43 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 05 20:00:43 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@136745\n"
    },
    {
      "commit": "4df2423a947bcd3f024cc3d3a1a315a8dc428598",
      "tree": "e7dac2c5a367b169e7f05a36058cf470e93f003b",
      "parents": [
        "c474dec3ffa1c0fe37edb3e701684188f7e8e7bc"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 05 14:34:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 05 14:34:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@136594\n"
    },
    {
      "commit": "c474dec3ffa1c0fe37edb3e701684188f7e8e7bc",
      "tree": "f02b3aaae987c50582f934e4c0f8db4464ae3cd8",
      "parents": [
        "41df3851287361a377203fb5ad4397475831eb27"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 04 09:49:09 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 04 09:49:09 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135863\n"
    },
    {
      "commit": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "076357b8567458d4b6dfdcf839ef751634cd2bfb",
      "tree": "efbb2fd6f1dc67d2d606382fc3b82983e7cb2e1f",
      "parents": [
        "3dec7d563a2f3e1eb967ce2054a00b6620e3558c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 14:04:24 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 14:04:24 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@132589\n"
    },
    {
      "commit": "3dec7d563a2f3e1eb967ce2054a00b6620e3558c",
      "tree": "aa3b0365c47cb3c1607c0dc76c8d32b4046fc287",
      "parents": [
        "15ab3eae2ec3d73b3e8aa60b33ae41445bf83f4b"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 02 22:54:33 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 02 22:54:33 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@137055\n"
    },
    {
      "commit": "15ab3eae2ec3d73b3e8aa60b33ae41445bf83f4b",
      "tree": "d03d027a7ed97af616904e02a7b420babf40d44f",
      "parents": [
        "3001a035439d8134a7d70d796376d1dfbff3cdcd"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 20 07:38:31 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 20 07:38:31 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@132569\n"
    },
    {
      "commit": "3001a035439d8134a7d70d796376d1dfbff3cdcd",
      "tree": "343ccdba15a594ff6e50c874a145232753315a30",
      "parents": [
        "da996f390e17e16f2dfa60e972e7ebc4f868f37e"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 19 10:57:31 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 19 10:57:31 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@132276\n"
    },
    {
      "commit": "da996f390e17e16f2dfa60e972e7ebc4f868f37e",
      "tree": "00a0f15270d4c7b619fd34d8383257e1761082f4",
      "parents": [
        "d24b8183b93e781080b2c16c487e60d51c12da31"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:50 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:50 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@131421\n"
    },
    {
      "commit": "d24b8183b93e781080b2c16c487e60d51c12da31",
      "tree": "fbb89154858984eb8e41556da7e9433040d55cd4",
      "parents": [
        "f1e484acb594a726fb57ad0ae4cfe902c7f35858"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@130745\n"
    },
    {
      "commit": "f1e484acb594a726fb57ad0ae4cfe902c7f35858",
      "tree": "99d2b34512f0dc2ae67666e756c1cfcd331e5fe3",
      "parents": [
        "22f7dfd23490a3de2f21ff96949ba47003aac8f8"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 22 00:13:42 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 22 00:13:42 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@127436\n"
    },
    {
      "commit": "22f7dfd23490a3de2f21ff96949ba47003aac8f8",
      "tree": "41bc290bb2f1f08a0e37cfda4955742a85d42ecf",
      "parents": [
        "9266c558bf1d21ff647525ff99f7dadbca417309"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jan 20 14:03:58 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jan 20 14:03:58 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@127101\n"
    },
    {
      "commit": "9266c558bf1d21ff647525ff99f7dadbca417309",
      "tree": "1630b1ba80f4793caf39d865528e662bdb1037fe",
      "parents": [
        "b798689749c64baba81f02e10cf2157c747d6b46"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:10 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:10 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@126645\n"
    },
    {
      "commit": "b798689749c64baba81f02e10cf2157c747d6b46",
      "tree": "da394a395ddb1a6cf69193314846b03fe47a397e",
      "parents": [
        "f013e1afd1e68af5e3b868c26a653bbfb39538f8"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@125939\n"
    },
    {
      "commit": "f013e1afd1e68af5e3b868c26a653bbfb39538f8",
      "tree": "7ad6c8fd9c7b55f4b4017171dec1cb760bbd26bf",
      "parents": [
        "e70cfafe580c6f2994c4827cd8a534aabf3eb05c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "54b6cfa9a9e5b861a9930af873580d6dc20f773c",
      "tree": "35051494d2af230dce54d6b31c6af8fc24091316",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
