)]}'
{
  "log": [
    {
      "commit": "be02f32cff3861ba5e7ec29344f5a6fc0049554f",
      "tree": "231f20f7e78419bc7ca06150162ab3fd97164046",
      "parents": [
        "f609b661a610c79f615036fd6b9547afb1b364d4"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Apr 12 11:53:11 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Apr 19 12:21:20 2012 -0700"
      },
      "message": "TimedAudioTrack: Optimize the queue trim operation.\n\nDO NOT MERGE\nthis change must be hand-merged into master due to directory\nrestructuring.\n\nDon\u0027t perform the end PTS calculation for each buffer during trimming.\nInstead, only calculate the ending PTS of a buffer if there is no next\nbuffer in the queue.  This optimization assumes that the buffers being\nqueued are in monotonic media time order (a fair assumption for now)\nand that the timestamps in the audio are contiguous (not a requirement\nfor this API, but a reality of how it is being used right now).\n\nIn the case where the audio is discontinuous on purpose, it is\nthat this optimization will cause the system hold one extra buffer\nwhich it could have safely trimmed.  It should not be much of an issue\nsince in real life the audio is almost always contiguous, and as long\nas the media clock is running and the mixer is mixing, the buffer will\nbe used up and discard as part of the normal flow anyway.\n\nChange-Id: I00061e85ee7d5651fcf80751646c7d7415894a14\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "f609b661a610c79f615036fd6b9547afb1b364d4",
      "tree": "48ebc4258628217fdb84e5fda66ab7615b017035",
      "parents": [
        "aa0c94fc87e1c20177c9285ab4576e4b59b59127"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Apr 19 12:08:17 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Apr 19 12:21:02 2012 -0700"
      },
      "message": "TimedAudioTrack: Fix continuity threshold handling.\n\nDO NOT MERGE\nthis change must be hand-merged into master due to directory\nrestructuring.\n\nFix issues with continuity threshold handling; notably\n+ If the steady-state continuity threshold is exceeded, be sure to\n  clear the on-time flag.  Failure to do this will result in the\n  system picking a new mix point which simply satisfies the\n  steady-state continuity threshold instead of the startup threshold.\n  Since we are putting a discontinuity in presentation anyway, we\n  really want to pick a perfect point, not just an OK point.\n+ Tighten the steady-state continuity threshold.  It was currently set\n  to 100mSec which is enormous.  4mSec (the new setting) is much more\n  appropriate.  On systems with a VCXO (like tungsten) this should\n  never be wrong by more than a sample.  If TimedAudioTracks are ever\n  to be used on VCXO-less systems, this threshold should probably be a\n  a parameter configurable by applications on a track by track basis\n  so they can make the tradeoff between allowed error and frequency of\n  disruptive corrections.\n+ Reset the on-time flag if the mixer provides no PTS during a mix\n  operation.  This makes for a convenient way for the HAL to reset\n  timed tracks when it makes changes for delay compensation across\n  multiple outputs.\n\nChange-Id: I2cb23de5a3d1f75618abc1c8ab903db883837aa8\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "4ea7bfea312e4ddf815eabdef04d3f3b4878a51a",
      "tree": "3b1def6ef232e9e8b880d41294f44114566bff77",
      "parents": [
        "7d4a2ad8c776207c719d186a33a68a164761f11c",
        "4233f262499aa1dea332fe60d7a30ab4cdc4e3ed"
      ],
      "author": {
        "name": "Justin Mattson",
        "email": "jmatt@google.com",
        "time": "Wed Apr 11 15:55:36 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 15:55:36 2012 -0700"
      },
      "message": "Merge \"Check if WallpaperService is enabled\" into ics-aah"
    },
    {
      "commit": "4233f262499aa1dea332fe60d7a30ab4cdc4e3ed",
      "tree": "227875fb0ad486c9dc3857cf8bb9fbba8bd2aaeb",
      "parents": [
        "14d3b807b730e04d90d6dd9c9569decdf12cc9cb"
      ],
      "author": {
        "name": "Justin Mattson",
        "email": "jmatt@google.com",
        "time": "Mon Apr 09 18:23:16 2012 -0700"
      },
      "committer": {
        "name": "Justin Mattson",
        "email": "jmatt@google.com",
        "time": "Mon Apr 09 18:36:15 2012 -0700"
      },
      "message": "Check if WallpaperService is enabled\n\nIf WallpaperService is disabled, don\u0027t delay starting SurfaceFlinger\nuntil it is.\n\nChange-Id: I95db6b7bc791329e2bae33472cfeb125e5f6f324\n"
    },
    {
      "commit": "e843f378c9bf449089abc984faa939adbe6088ce",
      "tree": "fa9c7203e5eb297da86bf0eb25e0fd8018f96ba6",
      "parents": [
        "14d3b807b730e04d90d6dd9c9569decdf12cc9cb"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Tue Mar 27 14:00:17 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Apr 09 18:04:49 2012 -0700"
      },
      "message": "TimedAudio: Track of the number of pending frames.\n\nKeep track of the number of frames pending in the timed audio queue so\nwe can implement framesReady in O(1) time instead of O(N).  This\nchange partially addresses bug 6020970; the bug will be completely\naddressed once this change has been up-integrated into master.\n\nChange-Id: I599eb15ea1f6d715b97b30e65214fb6fadd169df\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "e1d6c080f0b1769637d742e51cc22167c7af12bb",
      "tree": "1043b44ab40cb0dc9bbce83ab3c40b3773dc044d",
      "parents": [
        "faef0d0f648570dae5e919e8cb2d9096861f2491"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Apr 09 11:26:16 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Apr 09 15:33:53 2012 -0700"
      },
      "message": "Make common_time more deferential when coming out of networkless mode.\n\nAddresses issues seen in bug 6260139.\n\nThis is a really tough bug to repro, but there is no doubt that it is\nhappening occasionally on our super huge A@H subnet.  I have collected\ndata all weekend; the failure did not occur, but I got enough to have\na theoretical sequence of events which could trigger this behavior.\nThe sequence goes like this.\n\n1) A network is running and happy with a timeline master M,\n   maintaining timeline X.\n2) Device B boots, but its network is taking a long time to come up.\n   After 60 seconds of waiting for the network to come up, device B\n   goes into networkless master mode and creates timeline Y.\n3) Device B\u0027s network comes up.  It immediately sends a master\n   announcement saying that it is the current low-priority master of\n   timeline Y (its low priority because it has never had any real\n   clients)\n4) Master M ignores B because B is low priority.\n5) Device C boots and sends out a who is master request.  It is a race\n   between M and A to see who will respond first.  In this case, A\n   responds first.\n6) C sends B a request which B receives.  B now has its first client\n   and is now high priority.  In this scenario, B matches M in all\n   aspects of the priority ranking function, including winning the tie\n   breaker (larger MAC address when interpreted as a 48 bit integer)\n7) M sends its master announcement; it is ignored by B since B\n   now wins in the ranking function vs M.\n8) Finally, B sends its next master announcement.  M sees it, realizes\n   that there is a higher priority master out there (looks like a\n   bridged network scenario to M).  M gives up master status along\n   with timeline X.  The clients of M become clients of B and move\n   from timeline X to timeline Y (something which should only be\n   needed during an actual network bridging event)\n\nThis change has a few different things meant to severely minimize the\nchance that this can happen.\n\nFirst, and the most important change, is that networkless masters do\nnot immediately announce themselves as masters on the network they are\njoining.  Instead, they transition into Ronin to discover any\npre-existing masters on the network.  If there are no masters out\nthere, the device will simply transition back to master and continue\nto maintain the timeline it had in networkless mode.  In the scenario\nabove, however, B should discover M and become its client, preserving\nthe established timeline X.\n\nSecond, any time a device experienced an interface reconfiguration\n(including coming out of networkless mode), it clears its high\npriority bit.  This is a good thing.  The bit used to get set again\nany time...\n\n1) The device is master and receives a client request.\n2) The device becomes a client of another master on the network.\n3) The device becomes a master.\n\nNumber 3 in this list is a mistake.  The high priority bit should only\nbe set for devices during master election which have been\nparticipating in a timeline which has been used by multiple devices.\nWe know that this is the case when we are master and receive a\nrequest.  We also know that this is the case when we hear from a\nmaster and decide to become its client.  Simply becoming a master\nshould not make us high priority.  This behavior has been removed.\n\nThird, timeouts have been adjusted just for some extra \"stickyness\"\nwhen it comes to master status.  Clients now say in the Ronin state\nfor up to 10 seconds looking for a master sending up to 20 discovery\nrequests, instead of only 3 seconds (sending 6 requests).  The\nwait-for-election timeout has been adjusted up from 5 seconds to 12.5\nseconds to track the longer election cycle as well.  Also, while in\nsteady-state, clients will now wait until 10 packets (10 seconds)\nhave not been answered by its master before giving up and dropping\ninto Ronin.\n\nChange-Id: I438b39f31265e34d6719d4adfa9e8b95a2afc188\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "bc52ca28148a9a8f2935c380d9e97d56a75be416",
      "tree": "d108eb324db390897b736225dad2140f8f43eb6f",
      "parents": [
        "c7e56eff1b48b0b6e871bdd12027b6b3e80345de"
      ],
      "author": {
        "name": "Justin Koh",
        "email": "justinkoh@google.com",
        "time": "Thu Mar 29 15:11:44 2012 -0700"
      },
      "committer": {
        "name": "Justin Koh",
        "email": "justinkoh@google.com",
        "time": "Thu Mar 29 15:37:11 2012 -0700"
      },
      "message": "Stop ANR dialogs from appearing when ActivityManager dialogs should not be shown\n\nStop ANR dialogs from appearing on devices where the ActivityManager dialogs\nshould not be shown. Instead, kill the process. This is preferable because the\nuser can\u0027t actually do anything on the device.\n\nTESTED \u003d runs on device with that config, simulated ANR using test app.\n\nChange-Id: I6267000afd12ef929f0c625220184c6ab0139552\n"
    },
    {
      "commit": "f9f27197eb8732dad8cac15c9c30880489fab425",
      "tree": "cc6ced0d8e9dfc2ea8a224f804b539dcb854fd42",
      "parents": [
        "be587b52c73ab01c115feca4710a219b2eb42a18"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Mar 26 17:51:46 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Tue Mar 27 10:58:11 2012 -0700"
      },
      "message": "TimedAudio: Fix a cause of audio popping.\n\nFix an issue with buffer lifecycle management which could cause audio\npops on timed outputs.  There were two issues at work here.\n\n1) During trim operations for the queued timed audio data, buffers\n   were being trimmed based on their starting PTS instead of when the\n   chunk of audio data actually ended.  This means that if you have a\n   very large chunk of audio data (larger than the mixer lead time),\n   then a buffer at the head of the queue could be eligible to be\n   trimmed before its data had been completely mixed into the output\n   stream, even though the output stream was fully buffered and in no\n   danger of underflow.\n2) The implementation of getNextBuffer and releaseBuffer for timed\n   audio tracks was not keeping anything like a reference to the data\n   that it handed out to the mixer.  The original architecture here\n   seemed to be expecting a ring buffer design, but timed audio tracks\n   use a packet based design.  Pieces of packets are handed out to the\n   mixer which then frequently will hold onto that chunk of data\n   across two mix operations, using the first part of the chunk to\n   finish a mix buffer and then using the end of the chunk for the\n   start of the next mix buffer.  If the buffer that the mixer is\n   holding a piece of got trimmed before the start of the next mix\n   operation, it would return to its heap and could be filled with who\n   knows what by the time it actually got mixed.  On debug builds,\n   they seem to get zero\u0027ed out as they go back to the heap causing\n   obvious pops in presentation.\n\nThis change addresses both issues.  Trim operations are now based on\nending presentation time for a chunk of audio, not the start.  Also,\nwhen the head of the queue is in flight to the mixer, it can no longer\nbe trimmed immediately, merely flagged for trim by the mixer when the\nmixer finally does call releaseBuffer.\n\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\nChange-Id: Ia1ba08cb9dea35a698723ab2d9bcbf804f1682fe\n"
    },
    {
      "commit": "9ce685b934b36cc57631e10f7c1e3609e91e3f9c",
      "tree": "5ab0bc432f26889dcc2205e3e5c4c0ed11477424",
      "parents": [
        "179239bc6c2c7d09f226c6771735169d2bce98cd"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 15 16:27:14 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 19 18:37:57 2012 -0700"
      },
      "message": "Make immersive mode public \u0026 imply update locking\n\nActivity.setImmersive(boolean) / android:immersive\u003d\"bool\" are now public.\nIn addition, if the foreground activity is immersive then an update lock\nwill be held on its behalf.  This lets applications such as movie players\nsuppress the display of intrusive notifications, OTA-availability dialogs,\nand the like while they are displaying content that ought not to be\nrudely interrupted.\n\nThe update lock aspect of this mode is *advisory*, not binding -- the\nupdate mechanism is not actually constrained; it simply uses this information\nin deciding whether/when to prompt the user.  It\u0027s more a guideline than\na rule.\n\nBug 6154438\n\nChange-Id: Ibd3491fc437077f3fa0d9708ed91955121e8c877\n"
    },
    {
      "commit": "179239bc6c2c7d09f226c6771735169d2bce98cd",
      "tree": "16ff7253920b934bedd466b49e56c04d2fe32b58",
      "parents": [
        "9b815629a3e989511ce4875880483ff9eed8b63e",
        "14958e21c12f922d7501d32c3bec05109eb342d5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 19 08:34:03 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 19 08:34:03 2012 -0700"
      },
      "message": "am 14958e21: Merge \"audioflinger: fix issue with camcorder and A2DP\" into ics-mr1\n\n* commit \u002714958e21c12f922d7501d32c3bec05109eb342d5\u0027:\n  audioflinger: fix issue with camcorder and A2DP\n"
    },
    {
      "commit": "10c3fc89a458d8cafc82fcae7d58f661cd822ba7",
      "tree": "816303c0f4b450fd063be20555501741b1569839",
      "parents": [
        "2b056c6e6759d63045c22556c5418a08fcb3f80c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 20:37:59 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 20:37:59 2012 -0700"
      },
      "message": "audioflinger: fix issue with camcorder and A2DP\n\nSome audio HALs do not support well a device selection of 0 (no device)\nreceived on an input stream.\n\nThis can happen because of a problem in the audioflinger code that handles\nthe forwarding of the output device selection to the record thread for use by\nthe pre processing modules that need it. If the output device is 0 (meaning\nno op, which happens when stopping playback over A2DP) audioflinger could not\ndetect it was an output device selection and would forward it to the input\nstream (see AudioFlinger::setParameters() and RecordThread::checkForNewParameters_l().\n\nIssue 6179641.\n\nChange-Id: Idae534521866538e0d12ba259a2834f402a922e2\n"
    },
    {
      "commit": "5da418d3319add35f15197db39195984b0262e84",
      "tree": "6478bcad8909ed9172281a7ec3e475d0febc5052",
      "parents": [
        "a1faacd268b431f73c07be7db5e1b7388f6655c1",
        "ce06c000b4133c63414c3244c3325e25315ab179"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 11:55:48 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 16 11:55:48 2012 -0700"
      },
      "message": "am ce06c000: Merge \"Debugging code for #6169553: Make Phone launch faster\" into ics-mr1\n\n* commit \u0027ce06c000b4133c63414c3244c3325e25315ab179\u0027:\n  Debugging code for #6169553: Make Phone launch faster\n"
    },
    {
      "commit": "2a29b3ad1350785aedea3442b38042885533576c",
      "tree": "110eb4b7982347f7fb8bdc309369a98d44ea4993",
      "parents": [
        "7f94977867ae67aa4f75d9db5de94e1233a2d7fe"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 15 15:48:38 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 15 15:48:38 2012 -0700"
      },
      "message": "Debugging code for #6169553: Make Phone launch faster\n\nThe activity manager now has a tick when launching an app every\n500ms, where it collects the current stack traces of the app if\nit hasn\u0027t finished launching.  These traces are included as part\nof dumpstate.\n\nThis is only done on non-user builds.\n\nChange-Id: I7f09ea00aab821ac81795f48c9d68fcca65f89fe\n"
    },
    {
      "commit": "3982af7b9ce0eb49dc54c9172422805a220c8b9c",
      "tree": "1b19cc4fa1aed5f4912ee7425dc251386ed15e38",
      "parents": [
        "4ad90984e7559cbbda7c886ed51e6b2a42e8bc9e",
        "0e87370077b322b3a88c345a44c6bf3d56617071"
      ],
      "author": {
        "name": "Daniel Lehmann",
        "email": "lehmannd@google.com",
        "time": "Mon Mar 12 18:25:02 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 12 18:25:02 2012 -0700"
      },
      "message": "am 0e873700: Remove the country detector logging\n\n* commit \u00270e87370077b322b3a88c345a44c6bf3d56617071\u0027:\n  Remove the country detector logging\n"
    },
    {
      "commit": "0e87370077b322b3a88c345a44c6bf3d56617071",
      "tree": "9fa4b8ce60f0e1dea9739ea6cf8462b89f2bf20c",
      "parents": [
        "f4ae6aabbcefe39b3c85b03729c74044f02369d4"
      ],
      "author": {
        "name": "Daniel Lehmann",
        "email": "lehmannd@google.com",
        "time": "Mon Mar 12 17:04:17 2012 -0700"
      },
      "committer": {
        "name": "Daniel Lehmann",
        "email": "lehmannd@google.com",
        "time": "Mon Mar 12 17:04:17 2012 -0700"
      },
      "message": "Remove the country detector logging\n\nBug:6156714\nChange-Id: Id0ff60b0530142e2bce055ee8cf8dde94e974aa5\n"
    },
    {
      "commit": "9162cd596b958c1e59ec69257b2e596290ad73c3",
      "tree": "91e5c25d26b3ec65d63f81c301dffa214e61437d",
      "parents": [
        "8891e01eef2d67f68f71ad6051cf8efdc0dfc55f"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Mar 07 17:53:36 2012 -0800"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Mar 07 17:58:30 2012 -0800"
      },
      "message": "fix setting only usb mode\n\nIf you cleared the last usb mode it would fail (and so would setting\nit if you started with none). This fixes it to set and unset the\nlast property correctly.\n\nChange-Id: I8aa62a65ccda5f3872d2995f30d80426f07a281c\n"
    },
    {
      "commit": "e0cbb81b7ac0985a839a384ab3227bb6bc1acd43",
      "tree": "ecb069e76f9c4ef98df3583c37582c36ad95b859",
      "parents": [
        "48f5744b69249da2f01af50a0fbeae12cfe13b31",
        "2d72be20fe950209c389c6368e785aab6fb2c1a0"
      ],
      "author": {
        "name": "Kevin Hester-Chow",
        "email": "khester@google.com",
        "time": "Wed Mar 07 15:35:05 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 07 15:35:05 2012 -0800"
      },
      "message": "Merge \"Do not assume that there is always a running activity (Necessary for headless devices)\" into ics-aah"
    },
    {
      "commit": "d7af347922064be585d3b9406cf7f9edd9d2f049",
      "tree": "948347f2b4e239bea832351019e7afd6efcf063b",
      "parents": [
        "9e879c806ed199e043bee5f83ef1c5e5d9470112"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Mar 05 16:01:26 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Tue Mar 06 17:59:02 2012 -0800"
      },
      "message": "Detect (at runtime) kernel support for the \"hdmi_audio\" switch.\n\nA new switch was introduced in AndroidAtHome to deal with a race\ncondition between the WiredAccessoryObserver and the HW composer HAL.\nWhen the new switch (\"hdmi_audio\") is present, we want to pay\nattention to it instead of paying attention to the old switch\n(\"hdmi\").  This change checks at startup for the presence or absence\nof the new switch and uses it if available, otherwise it falls back on\nclassic behavior.\n\nsee change ID I960cfc2f3e8df5342e7248a26fd313fdad2ca322 for the kernel\nside changes.\n\nsee bug 6023647 for a discussion of the issue.\n\nChange-Id: Ia2f2c399c3d85896ede0fff57ecbd51f332b3e0e\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "2d72be20fe950209c389c6368e785aab6fb2c1a0",
      "tree": "fcd8c80c7a81acf262cc0bd5ce673ad312d702b1",
      "parents": [
        "7cdf617f43c0729892ff0b0b08c94d755db7b218"
      ],
      "author": {
        "name": "Kevin Hester-Chow",
        "email": "khester@google.com",
        "time": "Mon Mar 05 08:01:00 2012 -0800"
      },
      "committer": {
        "name": "Kevin Hester-Chow",
        "email": "khester@google.com",
        "time": "Mon Mar 05 08:01:00 2012 -0800"
      },
      "message": "Do not assume that there is always a running activity\n(Necessary for headless devices)\n\nChange-Id: I61969ebfdd4aa02a3661272a0bcd0aa67667f115\n"
    },
    {
      "commit": "f79f800864f26ce163a0fbc6b2de0470006cc5ac",
      "tree": "228e143bfcf3a804023013a1e7a79d2b0fb4ad06",
      "parents": [
        "c46c87aa21958132f4280c4dfddeff3bab305c95"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 01 12:39:25 2012 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 01 12:39:25 2012 -0800"
      },
      "message": "Send UpdateLock broadcasts to manifest receivers\n\nSo that e.g. the system update service doesn\u0027t need to run all the time.\n\nBug 5543442\n\nChange-Id: Icd0fcc7f771f7ba92ff190ffed0f0debba4bd911\n"
    },
    {
      "commit": "8c218b78b3c34e518df4bf25dececde7d821e5cb",
      "tree": "eed0aab33b76afc4dc086d2b45c5d82081b63c63",
      "parents": [
        "bcee3613205e7a5cee7c78f296ec9cd471b81236",
        "66e817655a239f8738ce73e06bb1496b2e818f74"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 29 11:47:02 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 29 11:47:02 2012 -0800"
      },
      "message": "Merge \"Introduce UpdateLocks - \"now is not a good time for non-interactive OTA\"\" into ics-aah"
    },
    {
      "commit": "49b39ced8270f521185abb72504c12d99b64adae",
      "tree": "ce9edbdfdacc6d963ebedb5b9c9e04ac6dab5de7",
      "parents": [
        "b6fcb5362f5a35fca7b1725f423993597e3eb1be",
        "27e20ccd9ac4dd1f9bf902ed2b359cc8beff7c9b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 28 15:03:04 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 28 15:03:04 2012 -0800"
      },
      "message": "am 27e20ccd: Merge \"Fix issue #6073913: onActivityResult() not getting called...\" into ics-mr1\n\n* commit \u002727e20ccd9ac4dd1f9bf902ed2b359cc8beff7c9b\u0027:\n  Fix issue #6073913: onActivityResult() not getting called...\n"
    },
    {
      "commit": "66e817655a239f8738ce73e06bb1496b2e818f74",
      "tree": "e0e670ac912d83acc824a42445784465c09860cf",
      "parents": [
        "38b9ca514bdcfbf277f216a29a9f219521836625"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 23 14:59:36 2012 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 28 15:01:30 2012 -0800"
      },
      "message": "Introduce UpdateLocks - \"now is not a good time for non-interactive OTA\"\n\nAn \"UpdateLock\" works similarly to a wake lock in API: the caller is\nproviding a hint to the OS that now is not a good time to interrupt\nthe user/device in order to do intrusive work like applying OTAs.\nThis is particularly important for headless or kiosk-like products\nwhere ordinarily the update process will be automatically scheduled\nand proceed without user or administrator intervention.\n\nUpdateLocks require that the caller hold the new signatureOrSystem\npermission android.permission.UPDATE_LOCK.  acquire() and release()\nwill throw security exceptions if this is not the case.\n\nThe \"is now convenient?\" state is expressed to interested parties\nby way of a sticky broadcast sent only to registered listeners.  The\nbroadcast is protected; only the system can send it, so listeners\ncan trust it to be accurate.  The broadcast intent also includes a\ntimestamp (System.currentTimeMillis()) to help inform listeners that\nwish to implement scheduling policies based on when the device became\nidle.\n\nThe API change here is a tiny one: a dump(PrintWriter) method has been\nadded to the TokenWatcher class to facilitate getting information out\nof it for dumpsys purposes.  UpdateLock itself is still @hide.\n\nBug 5543442\n\nChange-Id: Ic1548dd43935f45d4efc67f970abdc290a45f715\n"
    },
    {
      "commit": "5c607433e3d609e1a023adb496018fd1389a8ec8",
      "tree": "021b1e5bac436fd2b89b16a377001438cacf305d",
      "parents": [
        "ee329930956c88d3c2cbcbb6da01abde4b40b2e8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 28 14:44:19 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 28 14:45:23 2012 -0800"
      },
      "message": "Fix issue #6073913: onActivityResult() not getting called...\n\n...if the process is killed and restarted\n\nTry to ensure that in all cases we deliver an activity result if one\nwas requested.\n\nChange-Id: Id43e830d2ee782f98ed1e3b68e5e16f3258d4ad8\n"
    },
    {
      "commit": "37b5c7cb69d18f23132086411a011fa1703e2b25",
      "tree": "06c2f68642d6fe1a93311996844cd2cb4d2ce770",
      "parents": [
        "38b9ca514bdcfbf277f216a29a9f219521836625",
        "133dc2d7aecc68990c363c861716b134910a4ced"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 24 15:38:03 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 24 15:38:03 2012 -0800"
      },
      "message": "am 133dc2d7: Merge \"Fix issue #6048808: sometimes auto-correct is inactive\" into ics-mr1\n\n* commit \u0027133dc2d7aecc68990c363c861716b134910a4ced\u0027:\n  Fix issue #6048808: sometimes auto-correct is inactive\n"
    },
    {
      "commit": "7663d80f6b6fd6ca7a736c3802013a09c0abdeb9",
      "tree": "266fa968bd0d82616ff8d83e5f183a0ba6431cc9",
      "parents": [
        "566328a2a5fcd8c40fc67d8974d6df0df48b0056"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 24 13:08:49 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 24 13:18:23 2012 -0800"
      },
      "message": "Fix issue #6048808: sometimes auto-correct is inactive\n\nMy previous change to speed up the time the IME is dismissed was\nfundamentally flawed.  That change basically switched the order\nthe application called the input method manager service from doing\nstartInput() and then windowGainedFocus(), to first windowGainedFocus()\nand then startInput().\n\nThe problem is that the service relies on startInput() being done\nfirst, since this is the mechanism to set up the new input focus,\nand windowGainedFocus() is just updating the IME visibility state\nafter that is done.  However, by doing the startInput() first, that\nmeans in the case where we are going to hide the IME we must first\nwait for the IME to re-initialize editing on whatever input has\nfocus in the new window.\n\nTo address this, the change here tries to find a half-way point\nbetween the two.  We now do startInput() after windowGainedFocus()\nonly when this will result in the window being hidden.\n\nIt is not as easy as that, though, because these are calls on to\nthe system service from the application.  So being able to do that\nmeant a fair amount of re-arranging of this part of the protocol\nwith the service.  Now windowGainedFocus() is called with all of\nthe information also needed for startInput(), and takes care of\nperforming both operations.  The client-side code is correspondingly\nrearranged so that the guts of it where startInput() is called can\ninstead call the windowGainedFocus() entry if appropriate.\n\nSo...  in theory this is safer than the previous change, since it\nshould not be impacting the behavior as much.  In practice, however,\nwe are touching and re-arranging a lot more code, and \"should\" is\nnot a promise.\n\nChange-Id: Icb58bef75ef4bf9979f3e2ba88cea20db2e2c3fb\n"
    },
    {
      "commit": "f3b7653c1564fc9914640c1c734a15b97566042b",
      "tree": "90703cc58319103cc55f695bc3cf781cf68f83fb",
      "parents": [
        "13bca89cd5d78b8a6d6eca4a9a67ce2ae682de83",
        "01011c3d7ce4f76c1a76b33a04fc63da784ddbea"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 21 14:57:47 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 21 14:57:47 2012 -0800"
      },
      "message": "am 01011c3d: Fix issue #6037252: Screen shifts after all apps are upgraded\n\n* commit \u002701011c3d7ce4f76c1a76b33a04fc63da784ddbea\u0027:\n  Fix issue #6037252: Screen shifts after all apps are upgraded\n"
    },
    {
      "commit": "01011c3d7ce4f76c1a76b33a04fc63da784ddbea",
      "tree": "8dcaf6f1e6ef5426631d2d88513fbd1218e8178b",
      "parents": [
        "2d559b5311be1cd909e5a445afe75a840688b822"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 21 13:54:21 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 21 13:54:21 2012 -0800"
      },
      "message": "Fix issue #6037252: Screen shifts after all apps are upgraded\n\nTwo things: (1) make sure the boot message is always positioned within\nthe entire unrestricted display, and (2) allow the dim background to go\non top of the nav bar when being used for the boot message (this latter\nis really a hack that should be more generally fixed in the future).\n\nChange-Id: I7261b044eb802a39cadff931b50a679ff18781d6\n"
    },
    {
      "commit": "9894eb4e1cb8e759b2f2fa51c64195d461672b65",
      "tree": "eb9cf7fbf5d5a044f029c7e6bf727fbbe5c9c242",
      "parents": [
        "c5e750b9830818ffb014a26143c994df9ab7ff15",
        "17fe2476167ae741de44a2f0c0f5cb43fafe5584"
      ],
      "author": {
        "name": "Kent Ryhorchuk",
        "email": "kryhorchuk@google.com",
        "time": "Wed Feb 15 17:33:00 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 15 17:33:00 2012 -0800"
      },
      "message": "Merge \"New clock sync control loop.\" into ics-aah"
    },
    {
      "commit": "17fe2476167ae741de44a2f0c0f5cb43fafe5584",
      "tree": "06d6c215a40f0723920633d144340012bb1ded93",
      "parents": [
        "c4ddf2fd5f6e81ea2d577624a713eeb0c1587acb"
      ],
      "author": {
        "name": "Kent Ryhorchuk",
        "email": "kryhorchuk@google.com",
        "time": "Mon Feb 13 16:24:29 2012 -0800"
      },
      "committer": {
        "name": "Kent Ryhorchuk",
        "email": "kryhorchuk@google.com",
        "time": "Tue Feb 14 16:41:26 2012 -0800"
      },
      "message": "New clock sync control loop.\n\nChange clock sync control to velicity form PI loop. Tuned for office LAN and\nWiFi conditions, will probably perform better in clean environments.\nImprove packet filtering to prevent clock sync on bad rtt.\nChanged diag interface to take rtt times, P, I, D are no longer supported.\n\nChange-Id: Id7758262c5f987f07d7091aba6c0874d7c19f387\n"
    },
    {
      "commit": "652fdf9b0e47adaa316c6d66aa9a4cfc95475e4c",
      "tree": "2e57de2c5c1d41f03c800b07bbd7978027b8d7f4",
      "parents": [
        "f0d85f4b3904f67fa0ca4876b94dd9b6965fc998",
        "c8711ca7eb962072ccd6175be3cfa861195ba6cd"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 14 13:40:02 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 14 13:40:02 2012 -0800"
      },
      "message": "am c8711ca7: Merge \"Stop using shared DUN APN when tethering stops.\" into ics-mr1\n\n* commit \u0027c8711ca7eb962072ccd6175be3cfa861195ba6cd\u0027:\n  Stop using shared DUN APN when tethering stops.\n"
    },
    {
      "commit": "594eba859f0ce6d00127f83b38a93f8996e2735c",
      "tree": "0d7cc6cd92261882e9f401c28cc26ef1b3556efc",
      "parents": [
        "78308ca1b41e5974ca97093c532210bad5617b85",
        "ffc89899652f5c815b6d156f55a909001420891e"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Tue Feb 14 12:37:51 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 14 12:37:51 2012 -0800"
      },
      "message": "am ffc89899: Merge \"Don\\\u0027t pulse LED on new notification unless notification has LED flag set\" into ics-mr1\n\n* commit \u0027ffc89899652f5c815b6d156f55a909001420891e\u0027:\n  Don\u0027t pulse LED on new notification unless notification has LED flag set\n"
    },
    {
      "commit": "2384386f3132839bec0cf460a3f19d068ad28507",
      "tree": "c2a9ee697b4342f8bacd6dd32dd1b323261f1fe7",
      "parents": [
        "ffc89899652f5c815b6d156f55a909001420891e"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Feb 13 11:39:04 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 14 11:44:09 2012 -0800"
      },
      "message": "Stop using shared DUN APN when tethering stops.\n\nBackported from master, including a bug fix and a cdma enhancement.\n\nEven if other people are sharing the connection (ie, carrier wants\ndefault and tethered traffic on the same APN) stop using a carrier-\ndescribed APN when the tethering stops.\n\nbug:5972599\nChange-Id: I25e4831855e6b62c0c3ab3a6f4d4846aaee6ac50\n"
    },
    {
      "commit": "ece18efb35f762d2f7d2e802be29464ec6abdfbf",
      "tree": "3ef4fa0c0d155e3b6e0eb77a8d40f2f3aa65cb9d",
      "parents": [
        "08eb7dd630a2de8dd51a988a747da26ff9d3f8fb"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Feb 13 20:42:19 2012 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Feb 13 20:42:19 2012 -0800"
      },
      "message": "Don\u0027t pulse LED on new notification unless notification has LED flag set\n\nBug: 6006131\n\nChange-Id: I719c7d68e310bfaca227f6286159b3993784926b\nSigned-off-by: Mike Lockwood \u003clockwood@google.com\u003e\n"
    },
    {
      "commit": "e1288ffbf2ca0a074b556652a2a38ea954feff80",
      "tree": "d082075cde774859ea6dc98509fce5a62c62419f",
      "parents": [
        "673b352f6b2566f04ce25ec7e404132b75190cde"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Sun Feb 12 17:51:21 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Sun Feb 12 17:51:21 2012 -0800"
      },
      "message": "Put a bandaid on a segfault in timed audio track handling.\n\nAdd a bandaid to prevent a segfault which can occur while handling\ntimed audio buffers.  There is a deeper problem which should\neventually be addressed, but for now this fix should prevent any\ncrashing.\n\nThe deeper problem is as follows.\n\nWhen the AudioFlinger mixer gets data to mix from an AudioTrack, it\nends up getting a structure filled out which points into an IMemory\nregion owned by the AudioTrack.  Unfortunately, this structure is not\nholding a refcount on the IMemory which it points into.  If the\nIMemory refcount hits 0 and the chunk of RAM is retuned to the binder\nheap it came from, there can still be a Buffer object being held by\nthe AudioFlinger mixer which points into the region of memory which\nwas retuned to the binfer heap.  If AF reads from this buffer, it\ncould read corrupt data (if the region of memory gets handed back out\nto a writer), or it could segfault (if the heap has been freed and the\npages unmapped).  Similar problems could happen if AF attempts to\nwrite to the buffer, heap corruption in one case, segfaulting in the\nother.\n\nIn the past, this has not been an issue for AF, because tracks\nallocate a single IMemory (which serves as a ring buffer) and the\nIMemory lives for as long as the track lives.  As an artifact of the\nway the code came out, the mixer cannot be holding a Buffer structure\npointing into the IMemory which used to be owned by a track if the\ntrack no longer exists.  Tracks cannot come into or out of existence\nduring a mix operation, which is the only thing which makes this safe.\n\nTimedTracks work differently, however.  Timed tracks each allocate a\nsmall binder heap, and then hand out IMemory instances  broken out of\nthis heap.  The heap lives as long as the track, so the worst which\ncould happen here is that a TimedTrack\u0027s IMemory gets returned to the\nheap while there is still a buffer structure in flight pointing into\nthe memory region, then the region gets handed out again and\noverwritten by new data causing the mixer to mix the wrong audio.  The\ntiming to cause this to happen is very difficult to encounter, and you\nto generate the timing conditions required, you need to be in a pretty\nbad failure state where audio is already breaking up and skipping, so\nits unlikely that anyone would notice (which is why I\u0027m band-aiding\nthe segfault and letting the deeper issue slide for now).\n\nIn general, however, it might be a good idea to revisit this buffering\ndesign.  On principal, if someone is going to hold pointers into a\nrefcounted object, they should be holding a ref on the object at the\nsame time.  Failure to do this will usually lead to a situation where\nthere are corruption or segfault issues, or to a system where the\nrefcounted object\u0027s lifetime must be implicitly managed very carefully\nin ways which are usually non-obvious and are easy to break by new\nengineers on a project.\n\nChange-Id: Ib391075395ed0ef46a03c37aa38a82d09e88abeb\n"
    },
    {
      "commit": "673b352f6b2566f04ce25ec7e404132b75190cde",
      "tree": "7e7e3c5adf34c248481d84bc68fa5852a800cd1c",
      "parents": [
        "4e2a6ae15f7f059a2247affb2fa518dc6a110196",
        "197fe26940022be75384f4038dd789f446d33122"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Feb 10 15:14:06 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 10 15:14:06 2012 -0800"
      },
      "message": "am 197fe269: Merge \"Add OEM specific USB mode enumeration based on ro.bootmode property\" into ics-mr1\n\n* commit \u0027197fe26940022be75384f4038dd789f446d33122\u0027:\n  Add OEM specific USB mode enumeration based on ro.bootmode property\n"
    },
    {
      "commit": "afd8f1820eeee21e960be44b22113dc2cecacf98",
      "tree": "4de6b15d8bb53b5da1fecb172522e565e2c7319a",
      "parents": [
        "744c5b0bdee6a26e2dc7e740a695d53c32104326"
      ],
      "author": {
        "name": "Kazuhiro Ondo",
        "email": "kazuhiro.ondo@motorola.com",
        "time": "Mon Feb 06 17:35:50 2012 -0600"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Feb 10 12:29:12 2012 -0800"
      },
      "message": "Add OEM specific USB mode enumeration based on ro.bootmode property\n\nThis patch is adding a capability so that OEM can override USB mode\nin case the device is boot up with OEM specific mode. (i.e. modem\ndebug, factory test etc.)\n\nBug:5964042\nChange-Id: Ic8e23d302563ce71eedb74ce94cca8c65838a4f7\n"
    },
    {
      "commit": "2cb8784d033f89a1793cfe9fa0ece555207c2d90",
      "tree": "240017ef8fe7f48f052a3328f169b1d718a3c1b7",
      "parents": [
        "4dd8338b8dc75c85f1ea7d198e27c36149a9f4dc"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Feb 09 11:28:36 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Feb 09 11:31:06 2012 -0800"
      },
      "message": "Fix a segfault in AudioFlinger.\n\nCheck the string returned by a HAL\u0027s implementation of get_parameters\nfor NULL before attempting to make use of it.  That way, we won\u0027t\nbring down the mediaserver because of a poorly written HAL.\n\nChange-Id: I45f0fd3de003151f98acf32c36c42f58d053f3a0\n"
    },
    {
      "commit": "583a03ac046901f90b6292a9e143dda6a7a053d6",
      "tree": "d2f78476331c9c8e34647f92d77657bc84788f97",
      "parents": [
        "e7509ae668efbbdfae24288681745ca71c27ec50"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Jan 12 11:05:37 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Tue Feb 07 16:07:48 2012 -0800"
      },
      "message": "Fix device ID selection in the common time service.\n\nFix an issue I discovered while back-porting this code to master.  The\ncommon time service was using the MAC address of \"eth0\" (hardcoded) as\nits device ID instead of fetching it from the interface it is\ncurrently bound to.  On phones (or any other device with no eth0) this\ncauses time service to never be able to fetch a device ID as it\nshould.\n\nChange-Id: Icf8a2006924088efc86065927a648f7f53638657\n"
    },
    {
      "commit": "36d372fb6a35c65a441123ef31e14c086b3b4db8",
      "tree": "80a3ae13742451980270540c51f3c55849034c59",
      "parents": [
        "7d6934f3eb30fbcd41e753fa3bec38ed75c30925"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Sun Feb 05 13:36:33 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Feb 06 18:02:33 2012 -0800"
      },
      "message": "Explicitly manage common clock client lifetimes.\n\nChange the CCHelper class to be an instanced instead of a static\npattern.  The CCHelper instances all share an interface to the common\nclock service and register/unregister a callback handler in response\nto there being CCHelper instance in the system or not.  This brings\nusage of the CCHelper into like with the new auto-disable\nfunctionality of the common time service.  For any given process,\nwhenever there are CCHelper instances active, the process will\nmaintain a callback target to the common clock service and will be\nconsidered to be an active client.\n\nAlso change all of the users of the CCHelper interface to manage the\nlifecycle of their new CCHelper instances.\n\nChange-Id: I7c28c5d70d9b07ba7407b4ac706e7e7d7253001b\n"
    },
    {
      "commit": "7d6934f3eb30fbcd41e753fa3bec38ed75c30925",
      "tree": "dba4c72864bfc0d8585977547c939852713591e3",
      "parents": [
        "354edbc80ec3f12539e08b32058702b7fe3a27cd"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Wed Feb 01 15:23:33 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Feb 06 18:02:33 2012 -0800"
      },
      "message": "Add the CommonTimeManagementService.\n\nAdd a small service to the high level core set of system services to\ncontrol the configuration of the native common time service.  This\nservice is responsible for controlling policy regarding when the\ncommon time service should be allowed to run, which networks it is\nallowed to run on, what priority it runs at in the master election\nalgorithm, and so on.\n\nChange-Id: I37308e882a0e8c4cd3e38c4f47b7c40b9150ba31\n"
    },
    {
      "commit": "354edbc80ec3f12539e08b32058702b7fe3a27cd",
      "tree": "db300d4ac58333fc95cac44f52f4cc06d5d4af2d",
      "parents": [
        "08d7aeb04872ab697330f9f89e32882e3268a5be"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Fri Jan 20 12:12:59 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Feb 06 18:02:32 2012 -0800"
      },
      "message": "Implement new common_time service functionality.\n\nMajor re-factor of the common_time (formally aah_timesrv) service in\npreparation for up-integration into Android master.  This work\nincludes bug fixes, new features, and general code cleanup.  High\npoints are listed below.\n\n+ CommonClock interface has been enhanced to allow querying of many\n  more low level synchronization details; mostly for debugging, but in\n  theory useful to an application as well.\n+ CommonTimeConfig interface has been implemented.  This allows a\n  management process to configure a number of different parameters\n  (many of them new) to control the behavior of the common_time\n  service.  Most importantly, the time service can be bound to a\n  specific network interface and should only operate on that interface\n  an no others.\n+ Enhance log messages to be more useful in determining what the time\n  service state machine is doing and why.\n+ Enhance information provided by dumpsys to provide many more details\n  about the quality of time sync and the network conditions which gave\n  rise to the current quality conditions.\n\nFeatures, features, features....\n+ Add a feature which lets the high level choose a different master\n  election endpoint so that multiple time synchronization domains can\n  co-exist on the same subnet (mostly to support a potential use case\n  of multiple home domains in a multiple dwelling environment like a\n  hotel, dormitory or apartment complex).\n+ Add a feature which lets the high level assign a 64-bit group ID\n  which allows partitioning of time synchronization domains even when\n  the master election endpoint is shared (as it might be if broadcast\n  is being used instead of multicast)\n+ Add an auto-disable feature which lets the time service drop into\n  network-less mode when there are no active clients of the\n  common_time service in the device.  Mostly for phones, this allows\n  phones to not consume network/battery resources when they don\u0027t need\n  to maintain common time.\n+ Add a feature which lets the high level choose the priority of the\n  common_time service in the master election protocol.  This allows\n  high level decisions about things like mobile vs non-mobile, wired\n  ethernet vs WiFi to affect who ends up with the job of master on a\n  given network.  Priority overrides at the low level also allow\n  clients coming in from network-less mode to lower their effective\n  priority as they join a new network so as to not disrupt any\n  stable long-running timeline which may already be active on the\n  network.\n+ Add the ability to control some of the core parameters of the time\n  sync service which effect network load (like the sync polling\n  interval and the master announce interval)\n\nChange-Id: I71af15a83cfa5ef0417b406928967fb9e02f55c6\n"
    },
    {
      "commit": "9387f4f80081128601da936fe5e6006809ff479c",
      "tree": "35a1afeaa43847133b1fee7743fa95957a4ded9c",
      "parents": [
        "2627965d612c3b30b59c64631d40c8a810dabba4"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Wed Jan 18 15:00:33 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Fri Feb 03 17:46:00 2012 -0800"
      },
      "message": "Add native common time config service.\n\nDefine a native service interface for configuring and controlling the\ncommon time service.  Implement the native marshallers and stub the\nimplementation of the new interface.\n\nChange-Id: Ia6a6a20ef3d221e8829c55be1dd5f98ed996c610\n"
    },
    {
      "commit": "2627965d612c3b30b59c64631d40c8a810dabba4",
      "tree": "bc7c1c0fd1b18fceee87c36c0a55b0fe8d49e5b1",
      "parents": [
        "573c84d43ed1752b1249518a8791ee1d0cf08898"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Tue Jan 17 17:10:55 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Fri Feb 03 17:45:53 2012 -0800"
      },
      "message": "Add marshallers for the new common clock methods.\n\nAdd marshallers and stub implementations for new methods in the common\nclock interface to support new functionality being added in the\nprocess of integrating the common time service more closely with the\nJava level of Android.\n\nChange-Id: Iac2d3fb405d1b64cea1d8e13f988160afb76a06d\n"
    },
    {
      "commit": "7f1d9e1c5301e58891db62061cee7d413542be81",
      "tree": "3272f4c84dd29fa46039f21bf3e7fb61084fb06b",
      "parents": [
        "232f869c99b8b33276ddad8054fc3e89e44852e5"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Tue Jan 17 10:20:12 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Fri Feb 03 17:45:17 2012 -0800"
      },
      "message": "Move the definition of time server state.\n\nMove the State enum up to the ICommonClock interface so it can be\nreturned for status/debugging up to clients.\n\nChange-Id: I81fef5b96ffc69a4f2e9801b3744feea099ccd47\n"
    },
    {
      "commit": "232f869c99b8b33276ddad8054fc3e89e44852e5",
      "tree": "35a9c55d06ad7b2bbbc85107ee243896b3d63191",
      "parents": [
        "f0da1f51f41c254032a6dddc3985dd7b6dd7e59f"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Tue Jan 17 18:52:32 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Fri Feb 03 17:43:21 2012 -0800"
      },
      "message": "De-AAH-ify the common time service.\n\nBulk name change to remove references to Android@Home from the common time\nservice in preparation for cleanup and up-integration into the master\nbranch.  Basically, aah_timesrv is now common_time.\n\nChange-Id: I3d3db212f96e8ba171aa36b9c58e27e4a336cb0a\n"
    },
    {
      "commit": "9800e30b547627421175ca5b864a2750189d7e37",
      "tree": "ff72238fb512e3a5a90dbf0c1a7db2a0c0484009",
      "parents": [
        "7057eb25cac0a301f247b9c9bae9acba24e2b18d",
        "44f64c965776ae65ff85ef8c37afb7e14483bdf2"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jan 25 11:30:44 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 25 11:30:44 2012 -0800"
      },
      "message": "am 44f64c96: Merge \"Filter our v6 address from tethering dns.\" into ics-mr1\n\n* commit \u002744f64c965776ae65ff85ef8c37afb7e14483bdf2\u0027:\n  Filter our v6 address from tethering dns.\n"
    },
    {
      "commit": "03d58bc656f64f98f36462ac18dca16107da5a57",
      "tree": "a11ef82283de783e62756b85a40f726b36798e3f",
      "parents": [
        "185c0ef7e4aaa4bb978a6eb5c93c569585a07f56"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Dec 19 16:59:31 2011 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jan 24 16:44:50 2012 -0800"
      },
      "message": "Filter our v6 address from tethering dns.\n\nDon\u0027t support IPv6 yet, and the tools crash when they see one, so\nfilter them out.\n\nbug:5913888\nChange-Id: Id7096aa70da4e3cc8e4702b0b489c0228a100db9\n"
    },
    {
      "commit": "717c37944cfdaed5f55d2a124f322c607892ba87",
      "tree": "3fae2529a948c9ebbccd85c34ba26dbaf46f4992",
      "parents": [
        "99322356a0cde6c48b9d08695c8d225d80cc5788",
        "7eeaf3f07aa6fb10639d9f96c1367eb98c3e8839"
      ],
      "author": {
        "name": "Jason Simmons",
        "email": "jsimmons@google.com",
        "time": "Tue Jan 24 13:16:19 2012 -0800"
      },
      "committer": {
        "name": "Jason Simmons",
        "email": "jsimmons@google.com",
        "time": "Tue Jan 24 13:16:19 2012 -0800"
      },
      "message": "resolved conflicts for merge of 7eeaf3f0 to ics-aah\n\nChange-Id: I92b709268e22e3c3e9590c15173ab073b37db726\n"
    },
    {
      "commit": "99322356a0cde6c48b9d08695c8d225d80cc5788",
      "tree": "bcf13e950171946e430e9d0e11fea401701ac048",
      "parents": [
        "4e2acb1db56583731dc59534f3728a0608113cbe",
        "41773d46556aa47d4322ff89fdaf7d1345c2d1f2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 24 11:51:15 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 24 11:51:15 2012 -0800"
      },
      "message": "am 41773d46: Merge \"DO NOT MERGE Revert \"Revert \"AudioFlinger: mix track only when really ready (2)\"\"\" into ics-mr1\n\n* commit \u002741773d46556aa47d4322ff89fdaf7d1345c2d1f2\u0027:\n  DO NOT MERGE Revert \"Revert \"AudioFlinger: mix track only when really ready (2)\"\"\n"
    },
    {
      "commit": "7eeaf3f07aa6fb10639d9f96c1367eb98c3e8839",
      "tree": "1ee60909ec62718656be769b458fd14ad8272079",
      "parents": [
        "41773d46556aa47d4322ff89fdaf7d1345c2d1f2",
        "0609231f4fa415cc8198d706ee1c6b5f5e911023"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 24 11:49:39 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 24 11:49:39 2012 -0800"
      },
      "message": "Merge \"AudioFlinger: refine mixer sleep time logic\" into ics-mr1"
    },
    {
      "commit": "41773d46556aa47d4322ff89fdaf7d1345c2d1f2",
      "tree": "9a2dd281a4b2c19acbcc2d9cbfdbb6adec8db88e",
      "parents": [
        "f449ea9e96162698f4ec6d62c70750eb50744da7",
        "0b0896555827d2a5a9c8240f27dd94e8933dd778"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 24 11:49:16 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 24 11:49:16 2012 -0800"
      },
      "message": "Merge \"DO NOT MERGE Revert \"Revert \"AudioFlinger: mix track only when really ready (2)\"\"\" into ics-mr1"
    },
    {
      "commit": "4e2acb1db56583731dc59534f3728a0608113cbe",
      "tree": "1b242d1a782450d0ed94c1b1107198dd5f3c15ce",
      "parents": [
        "4fdbe9e55026b490d74eb36b0afb1e95836c501c",
        "f449ea9e96162698f4ec6d62c70750eb50744da7"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jan 24 11:42:39 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 24 11:42:39 2012 -0800"
      },
      "message": "am f449ea9e: Merge \"Use the carrier-given dns addrs for tethering.\" into ics-mr1\n\n* commit \u0027f449ea9e96162698f4ec6d62c70750eb50744da7\u0027:\n  Use the carrier-given dns addrs for tethering.\n"
    },
    {
      "commit": "f449ea9e96162698f4ec6d62c70750eb50744da7",
      "tree": "cf7ef3cfd707477e23ee79937d295ed83afa8be1",
      "parents": [
        "47163685eb90f9520e7ae0ac0984b4e1535e8e5b",
        "7df80fa4e8a017243f26e287c23b7c9092a391fd"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jan 24 11:40:19 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 24 11:40:19 2012 -0800"
      },
      "message": "Merge \"Use the carrier-given dns addrs for tethering.\" into ics-mr1"
    },
    {
      "commit": "4fdbe9e55026b490d74eb36b0afb1e95836c501c",
      "tree": "fb3c21ff00eeb4b430652f8674d8602696ec69ae",
      "parents": [
        "6c8bf2cc4c47d3a0d3642e1b515ac49a8f7e9510",
        "47163685eb90f9520e7ae0ac0984b4e1535e8e5b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 24 11:35:19 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 24 11:35:19 2012 -0800"
      },
      "message": "am 47163685: Merge \"Another attempt at issue #5823276: home repaints after full-screen app is exited\" into ics-mr1\n\n* commit \u002747163685eb90f9520e7ae0ac0984b4e1535e8e5b\u0027:\n  Another attempt at issue #5823276: home repaints after full-screen app is exited\n"
    },
    {
      "commit": "47163685eb90f9520e7ae0ac0984b4e1535e8e5b",
      "tree": "559bf70973aa1b8be1106d6243553893aa43b4f0",
      "parents": [
        "c986d6f01b00dd760ba1650918baadd24a6dc838",
        "b7ff51bde92b76757a002bb5b1889f5790986513"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 24 11:33:15 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 24 11:33:15 2012 -0800"
      },
      "message": "Merge \"Another attempt at issue #5823276: home repaints after full-screen app is exited\" into ics-mr1"
    },
    {
      "commit": "b7ff51bde92b76757a002bb5b1889f5790986513",
      "tree": "909e96458330c2b4203af28ee6b5bf6244a7e567",
      "parents": [
        "a486a53a02392c5d5de5a3d0856433a25e56b110"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jan 23 19:15:27 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jan 23 19:15:27 2012 -0800"
      },
      "message": "Another attempt at issue #5823276: home repaints after full-screen app is exited\n\nThis is between the two previous attempts.  I returned the part from the\noriginal that was breaking gallery, but have some new code to detect when\nsomething about the window params has changed that would require a\nlayout pass to make sure we still do a layout then, even if the window is\nnot currently visible.\n\nChange-Id: I07745e1f66022583e3076b84cc8bbe8bd2acd48f\n"
    },
    {
      "commit": "0609231f4fa415cc8198d706ee1c6b5f5e911023",
      "tree": "d49c9a55196ca8e8517dfee39246dc222e38b20d",
      "parents": [
        "0b0896555827d2a5a9c8240f27dd94e8933dd778"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 23 18:56:59 2012 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 23 18:56:59 2012 -0800"
      },
      "message": "AudioFlinger: refine mixer sleep time logic\n\nWhen an AudioTrack is in underrun state, the AudioFlinger mixer will\nsleep for a short period of time to give the app a chance to fill the\nAudioTrack buffer. If the AudioTrack is still not ready during next mixing round,\nthe mixer will proceed with other tracks.\n\nIf an application keeps a steady underrun condition, the AudioFlinger mixer will\nalternate between ready and not ready states. In the longer term this will cause the\naudio HAL to underrun.\nThere is a mechanism to reduce the sleep period if the mixer is not ready several times in a\nrow but this mechanism is defeated by the alternating ready/not ready conditions.\n\nThe fix consists in only increasing sleep time if the mixer is ready for at least two\nconsecutive times.\n\nIssue 5904527.\n\nChange-Id: Id0139bca9be8c4e425ec6d428515c4d8f718e8c9\n"
    },
    {
      "commit": "0b0896555827d2a5a9c8240f27dd94e8933dd778",
      "tree": "1c5913b524ed1acdc5648df5f209d378120082e3",
      "parents": [
        "44760b106a4bafcf83fb356bf91683db40e0e5a2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 23 18:35:10 2012 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 23 18:37:07 2012 -0800"
      },
      "message": "DO NOT MERGE Revert \"Revert \"AudioFlinger: mix track only when really ready (2)\"\"\n\nThis reverts commit b918035d34422a2041b6ec8c09c566bb93345b40.\n\nChange-Id: I093bcfa56ad54a080b930208b6b79169d33581fb\n"
    },
    {
      "commit": "879693917dcd007e3ba9ece63d9e8244758171ef",
      "tree": "89975ee4789d00a322d2e2f9c7bdf1c4f26c40f7",
      "parents": [
        "2a473961e3b4e06268d9e9d83049f33dbcf6a2c4",
        "44760b106a4bafcf83fb356bf91683db40e0e5a2"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Jan 23 15:51:55 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 23 15:51:55 2012 -0800"
      },
      "message": "am 44760b10: Merge \"Revert \"Fix 5797764: Increase lock screen\\\u0027s thread priority\"\" into ics-mr1\n\n* commit \u002744760b106a4bafcf83fb356bf91683db40e0e5a2\u0027:\n  Revert \"Fix 5797764: Increase lock screen\u0027s thread priority\"\n"
    },
    {
      "commit": "44760b106a4bafcf83fb356bf91683db40e0e5a2",
      "tree": "95bd104768afda39f48084ed5cdf324487a40ca5",
      "parents": [
        "fee5a860a8355cda071ff23644e943414ba7f65d",
        "54dbbce1c3cd3b534b0bf7cb15c85f966ed029b7"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Jan 23 15:49:32 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 23 15:49:32 2012 -0800"
      },
      "message": "Merge \"Revert \"Fix 5797764: Increase lock screen\u0027s thread priority\"\" into ics-mr1"
    },
    {
      "commit": "54dbbce1c3cd3b534b0bf7cb15c85f966ed029b7",
      "tree": "fda89338361f2ebbc5bc9a8fa7333b54466d1cd2",
      "parents": [
        "6d6a70a33746ef5147ab146f1802f0db424dd2f1"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Jan 23 15:24:42 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 23 15:24:42 2012 -0800"
      },
      "message": "Revert \"Fix 5797764: Increase lock screen\u0027s thread priority\"\n\nThis reverts commit 6d6a70a33746ef5147ab146f1802f0db424dd2f1\n\nThis doesn\u0027t appear to have a measurable impact for this issue."
    },
    {
      "commit": "2a473961e3b4e06268d9e9d83049f33dbcf6a2c4",
      "tree": "4fb489c402372e4fbfc2d3cfa21e29bdf9df7fab",
      "parents": [
        "b4b45135288b90483767d955c597af205c1378b4",
        "fee5a860a8355cda071ff23644e943414ba7f65d"
      ],
      "author": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Mon Jan 23 15:13:50 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 23 15:13:50 2012 -0800"
      },
      "message": "am fee5a860: Merge \"DO NOT MERGE Revert \"AudioFlinger: mix track only when really ready (2)\"\" into ics-mr1\n\n* commit \u0027fee5a860a8355cda071ff23644e943414ba7f65d\u0027:\n  DO NOT MERGE Revert \"AudioFlinger: mix track only when really ready (2)\"\n"
    },
    {
      "commit": "b918035d34422a2041b6ec8c09c566bb93345b40",
      "tree": "316213e4d9306e8f13656664f362cf6295f89c91",
      "parents": [
        "eaa11a723150f1ea79446d7ba4bf77eb47b73337"
      ],
      "author": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Mon Jan 23 14:01:15 2012 -0800"
      },
      "committer": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Mon Jan 23 15:02:41 2012 -0800"
      },
      "message": "DO NOT MERGE Revert \"AudioFlinger: mix track only when really ready (2)\"\n\nThis reverts commit 71c4496a9757438afd30b4404824f296f6158a49.\n\nChange-Id: Iff10c49ea728bb10023ddeb50a3b708db770fff2\n"
    },
    {
      "commit": "7df80fa4e8a017243f26e287c23b7c9092a391fd",
      "tree": "777abb518c32c4be2f65b75150edad99b1df96a7",
      "parents": [
        "5e5b57aef29b33d03965b4dc370cde9a39220adc"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Dec 09 15:36:50 2011 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Jan 23 11:29:37 2012 -0800"
      },
      "message": "Use the carrier-given dns addrs for tethering.\n\nThis fixes a complaint from carriers (that we used 8.8.8.8), but also\nfixes the case where there is only room for one live radio\nconnection: the secondary connection (tethering) doesn\u0027t have a\ndefault route to prevent on-device traffic from slipping out on the\ntethering connection, but tethered dns is proxied through dnsmasq, so\nit is appearing as on-device traffic and is unroutable.  By switching\nto the carrier-indicated dns servers we can use the host-routes\nalready set for those and kill two bugs with one fix.\n\nbug:5898904\nChange-Id: Ida8777687994f353b2d4f2c7db5d6ea4b6ac3882\n"
    },
    {
      "commit": "374fa7dbbc91730315daeca7f2de7e64b932f51f",
      "tree": "eff83746cf7d6913d98f4f4da816cdeea742d2d4",
      "parents": [
        "4fb2d0d22b9eb7de4909899f459e39c1eef5f783",
        "eaa11a723150f1ea79446d7ba4bf77eb47b73337"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Jan 20 15:26:13 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 20 15:26:13 2012 -0800"
      },
      "message": "am eaa11a72: Merge \"Fix 5797764: Increase lock screen\\\u0027s thread priority\" into ics-mr1\n\n* commit \u0027eaa11a723150f1ea79446d7ba4bf77eb47b73337\u0027:\n  Fix 5797764: Increase lock screen\u0027s thread priority\n"
    },
    {
      "commit": "eaa11a723150f1ea79446d7ba4bf77eb47b73337",
      "tree": "65340e7a9715009d887cb013c705e3eaae2f7873",
      "parents": [
        "b09f6f96e3583da320b69486869bc98fd463735e",
        "6d6a70a33746ef5147ab146f1802f0db424dd2f1"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Jan 20 15:24:20 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 20 15:24:20 2012 -0800"
      },
      "message": "Merge \"Fix 5797764: Increase lock screen\u0027s thread priority\" into ics-mr1"
    },
    {
      "commit": "6d6a70a33746ef5147ab146f1802f0db424dd2f1",
      "tree": "415cc2c4d78a70f8caf3300f3819d8f426e31a1f",
      "parents": [
        "ff321d496a6a07fc667112ecfe4d9a107d44147b"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Jan 20 14:35:56 2012 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Jan 20 14:41:55 2012 -0800"
      },
      "message": "Fix 5797764: Increase lock screen\u0027s thread priority\n\nThis increases lock screen\u0027s thread priority from THREAD_PRIORITY_FOREGROUND\nto THREAD_PRIORITY_DISPLAY to ensure it runs before other activities that\nmight stall lock screen when the screen turns on.\n\nChange-Id: I14cf9f3f5c092817bc6cf2d0a254001a5d34f744\n"
    },
    {
      "commit": "4be9cff46e82bbb608f91fd3c9ed9fca3cf14e8b",
      "tree": "345460b58ba95e644b7a67a486c3c799bbcf844f",
      "parents": [
        "7c481e044e9c20b41b9882656f0e4c95580de02d",
        "1bae80668cc1d12bb4a4b93bce1960b2601de131"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 20 12:03:31 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 20 12:03:31 2012 -0800"
      },
      "message": "am 1bae8066: Merge \"Fix issue #5823276 again: home repaints after full-screen app is exited\" into ics-mr1\n\n* commit \u00271bae80668cc1d12bb4a4b93bce1960b2601de131\u0027:\n  Fix issue #5823276 again: home repaints after full-screen app is exited\n"
    },
    {
      "commit": "1bae80668cc1d12bb4a4b93bce1960b2601de131",
      "tree": "31682135168927976967c976f25d2211fe701703",
      "parents": [
        "4d3161f379195302b720e120c5e6b65a0adfaf8c",
        "cfbf7dedaddd825b608e87d3dcf46adf80a46976"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 20 12:01:51 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 20 12:01:51 2012 -0800"
      },
      "message": "Merge \"Fix issue #5823276 again: home repaints after full-screen app is exited\" into ics-mr1"
    },
    {
      "commit": "731d90982c7d60b973c3e488330e1a8791fee83f",
      "tree": "5354f094011f29bef7c2124cd4a539def7b903d5",
      "parents": [
        "b800f277cb02f0639b66ecaf0798b30419486ab7",
        "5d58eb06bcc8671bae72fb2389a9929e106131cc"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jan 20 11:27:08 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 20 11:27:08 2012 -0800"
      },
      "message": "am 5d58eb06: Merge \"Fix a few memory leaks in the input dispatcher.  (DO NOT MERGE)\" into ics-mr1\n\n* commit \u00275d58eb06bcc8671bae72fb2389a9929e106131cc\u0027:\n  Fix a few memory leaks in the input dispatcher.  (DO NOT MERGE)\n"
    },
    {
      "commit": "5d58eb06bcc8671bae72fb2389a9929e106131cc",
      "tree": "a071eaa43a1b9156ce7de30e5aff51a1cb0a947e",
      "parents": [
        "820b45c0a21980a43532b9fb9823f8aa08c64a15",
        "9f63f121bdc0db64f9dd2be9db792a8698bb0d67"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jan 20 11:24:01 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 20 11:24:01 2012 -0800"
      },
      "message": "Merge \"Fix a few memory leaks in the input dispatcher.  (DO NOT MERGE)\" into ics-mr1"
    },
    {
      "commit": "cfbf7dedaddd825b608e87d3dcf46adf80a46976",
      "tree": "75601703069be05b1da575fdb95be34ef2fd8c52",
      "parents": [
        "820b45c0a21980a43532b9fb9823f8aa08c64a15"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 12 14:05:03 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 20 11:01:01 2012 -0800"
      },
      "message": "Fix issue #5823276 again: home repaints after full-screen app is exited\n\nDon\u0027t consider a window as a candidate for the top fullscreen window\nif it is not going to be a candiate for layout.\n\nThis fix does not include the change to ignore app tokens that are\nhidden.  This causes problems in some dialogs that stay hidden until\ntheir app is ready to display, but need to perform a series of relayouts\nduring that time to get to the right size.  Dropping this part of\nthe change still (mostly?) seems to allow us to avoid the bad states.\n\nChange-Id: Ic052cb1499d3287f47e9ffeac5cd2470ee5a308c\n"
    },
    {
      "commit": "b800f277cb02f0639b66ecaf0798b30419486ab7",
      "tree": "bb61bba8851e2439a0d2bcc4cf4ffdc9f175d81e",
      "parents": [
        "63f51da37033be8933d96e2b31398f09147bb6c5",
        "820b45c0a21980a43532b9fb9823f8aa08c64a15"
      ],
      "author": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Thu Jan 19 15:45:04 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 19 15:45:04 2012 -0800"
      },
      "message": "am 820b45c0: Merge \"DO NOT MERGE Revert \"Fix issue #5823276: home repaints after full-screen app is exited\"\" into ics-mr1\n\n* commit \u0027820b45c0a21980a43532b9fb9823f8aa08c64a15\u0027:\n  DO NOT MERGE Revert \"Fix issue #5823276: home repaints after full-screen app is exited\"\n"
    },
    {
      "commit": "170997a519ce79e93e4f6984e9663232475ce92c",
      "tree": "35cfb58116933c36a5cdad70c429bdce095ed87a",
      "parents": [
        "12310ee801553e63091ce3bda6f07a5be31a473c"
      ],
      "author": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Thu Jan 19 13:48:18 2012 -0800"
      },
      "committer": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Thu Jan 19 15:41:33 2012 -0800"
      },
      "message": "DO NOT MERGE Revert \"Fix issue #5823276: home repaints after full-screen app is exited\"\n\nThis reverts commit 01b02a734d2988c22b00f5df6346ad03d8bf52b6.\n\nChange-Id: I848c01fc44eb9a51ead1116b2647ed838ec1825f\n"
    },
    {
      "commit": "3bb3d41adbd78ab690378531d37aec369c79ead7",
      "tree": "2500205804e3eb0f44e45adabd5e0f2c722595b4",
      "parents": [
        "e821e78345dab5966ed880d37b3bec2e27b9df4a",
        "230a709285abc5dfd92f05d91a8997d52a59d3c7"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Jan 18 16:46:38 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 18 16:46:38 2012 -0800"
      },
      "message": "am 230a7092: Merge \"Fix 5863053: Add method to lock screen immediately.\" into ics-mr1\n\n* commit \u0027230a709285abc5dfd92f05d91a8997d52a59d3c7\u0027:\n  Fix 5863053: Add method to lock screen immediately.\n"
    },
    {
      "commit": "230a709285abc5dfd92f05d91a8997d52a59d3c7",
      "tree": "782118afed3a59641c740dc5a32559b80eccc3cc",
      "parents": [
        "db2e71635968f455ad4f41b2e24fb8b909c24ca0",
        "93c518e4f8abd98f87cda1712b30a5a86cfa60dd"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Jan 18 16:44:52 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 16:44:52 2012 -0800"
      },
      "message": "Merge \"Fix 5863053: Add method to lock screen immediately.\" into ics-mr1"
    },
    {
      "commit": "e821e78345dab5966ed880d37b3bec2e27b9df4a",
      "tree": "a290a3e9138fe6c692cfd71d2dc9536bf6ef9368",
      "parents": [
        "750b8bb5522e9cc4bd31853a34ce736b7b46cf34",
        "db2e71635968f455ad4f41b2e24fb8b909c24ca0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 18 16:14:20 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 18 16:14:20 2012 -0800"
      },
      "message": "am db2e7163: Merge \"AudioFlinger: mix track only when really ready (2)\" into ics-mr1\n\n* commit \u0027db2e71635968f455ad4f41b2e24fb8b909c24ca0\u0027:\n  AudioFlinger: mix track only when really ready (2)\n"
    },
    {
      "commit": "71c4496a9757438afd30b4404824f296f6158a49",
      "tree": "dbfa675e63db41e6f7bd554026f97fc3b158b9c2",
      "parents": [
        "3938e4fbaae132db9b4676ba26f6b3c042a6879e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 17 19:20:12 2012 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 18 12:27:38 2012 -0800"
      },
      "message": "AudioFlinger: mix track only when really ready (2)\n\nThis problem due to the way audio buffers are mixed when\nlow power mode is active was addressed by commits 19ddf0eb\nand 8a04fe03 but only partially. As a matter of fact, when more\nthan one audio track is playing, the problem is still present.\nThis is most noticeable when playing music with screen off\nand a notification or navigation instruction is played: in this case,\nthe music or notification is likely to skip.\n\nThe fix consists in declaring the mixer ready if all active tracks\nare ready. Previous behavior was to declare ready if at least one track was\nready. To avoid that one application failing to fill the track buffer blocks other\ntracks indefinitely, this condition is respected only if the mixer was ready\nin the previous round.\n\nIssue 5799167.\n\nChange-Id: Iabd4ca08d3d45f563d9824c8a03c2c68a43ae179\n"
    },
    {
      "commit": "93c518e4f8abd98f87cda1712b30a5a86cfa60dd",
      "tree": "fd9e7459bf5a228aef50826097a2cc714b8a6013",
      "parents": [
        "ff321d496a6a07fc667112ecfe4d9a107d44147b"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Jan 17 15:55:31 2012 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Jan 17 18:11:05 2012 -0800"
      },
      "message": "Fix 5863053: Add method to lock screen immediately.\n\nThis fixes a bug where the device fails to lock when DevicePolicyManagerService\nrequests the device to be locked and the screen was off because the user hit\nthe power button.\n\nThe change allows DPMS to directly invoke screen lock, bypasssing the screen state.\n\nChange-Id: Iecdda6fc61e9c519119de495be23c69c3b983921\n"
    },
    {
      "commit": "9f63f121bdc0db64f9dd2be9db792a8698bb0d67",
      "tree": "7188351e2f399cb1ebdd73b9150c9d79cc7d246a",
      "parents": [
        "722c8c02f1e17c232b041440ea97a2fda336a6e8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jan 12 18:30:12 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jan 17 14:56:50 2012 -0800"
      },
      "message": "Fix a few memory leaks in the input dispatcher.  (DO NOT MERGE)\n\nBug: 5862398\nChange-Id: I799ee47b6e5d6c51f45aa4296c6ab8a610b74be5\n"
    },
    {
      "commit": "defda4de3d5965e87bdd8fedb248d6cd948ecb9d",
      "tree": "8d9754f3b05c35b411fb0ef1049c535b8b735089",
      "parents": [
        "363c353e4ddfeaa3e7597f659edbbf6d253cf381",
        "2e282f35b009fe4c23daca35592dae2032641643"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 13 12:58:45 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 13 12:58:45 2012 -0800"
      },
      "message": "am 2e282f35: Merge \"Fix issue #5823276: home repaints after full-screen app is exited\" into ics-mr1\n\n* commit \u00272e282f35b009fe4c23daca35592dae2032641643\u0027:\n  Fix issue #5823276: home repaints after full-screen app is exited\n"
    },
    {
      "commit": "2e282f35b009fe4c23daca35592dae2032641643",
      "tree": "8dc3befb0826cc22653a327281f86ebc904647e9",
      "parents": [
        "da7b7700d0f499ac9b0bac51365b3da235388ae6",
        "01b02a734d2988c22b00f5df6346ad03d8bf52b6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 13 12:56:40 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 13 12:56:40 2012 -0800"
      },
      "message": "Merge \"Fix issue #5823276: home repaints after full-screen app is exited\" into ics-mr1"
    },
    {
      "commit": "65d8ec0dd316e988f9ee8d3503fa1692c559cc0d",
      "tree": "60dc9816889d84599293a294fc4428e25d13413e",
      "parents": [
        "29f2cd91d7979f77cbe566560f18bf277ba79866",
        "2cf18d28785fdd188641867503586627cb212302"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jan 13 12:17:22 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 13 12:17:22 2012 -0800"
      },
      "message": "am 2cf18d28: Merge \"Streamline package-installed handling by the Backup Manager\" into ics-mr1\n\n* commit \u00272cf18d28785fdd188641867503586627cb212302\u0027:\n  Streamline package-installed handling by the Backup Manager\n"
    },
    {
      "commit": "2cf18d28785fdd188641867503586627cb212302",
      "tree": "7b9d010b690c7ada4c3b012b244748035d4b128f",
      "parents": [
        "2753e826b2d0e7a4c5f80c3e825afa4aa579942b",
        "0bacfd2ba68d21a68a3df345b830bc2a1e515b5a"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jan 13 11:49:20 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 13 11:49:20 2012 -0800"
      },
      "message": "Merge \"Streamline package-installed handling by the Backup Manager\" into ics-mr1"
    },
    {
      "commit": "0bacfd2ba68d21a68a3df345b830bc2a1e515b5a",
      "tree": "4ba0f1c83b94a9dfe2df611cb83f10c346e00cab",
      "parents": [
        "51938e26913a98aa8de0292e9be8ea9d9ebc67c3"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jan 11 14:41:19 2012 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jan 12 16:15:09 2012 -0800"
      },
      "message": "Streamline package-installed handling by the Backup Manager\n\nIn particular, don\u0027t do O(asec_apps * installed_apps) work during the\nbroadcast receiver\u0027s operation.  On devices with many installed apps\nand a large number of them moved to ASECs, this was causing the system\nprocess to become unresponsive and the watchdog to fire -- which in turn\nwould initiate a restart loop, as the same package-installed broadcast\nwould then be issued again once the package manager rescanned the ASEC\ncontainers, ad infinitum.  With this change, the expensive call to the\npackage manager is only made once rather than asec_apps times.\n\nBug 5850283\n\nChange-Id: I14e280ea1fa6af19cebc58869a20fbb599c92c8c\n"
    },
    {
      "commit": "3e0c856e4a6ffae1b38e9ac7754c85a0907731f5",
      "tree": "3bc23eac495d21a7760053805188d756033147da",
      "parents": [
        "b533f462284f283e05c0eb725b878550ac5b8d9f",
        "ff321d496a6a07fc667112ecfe4d9a107d44147b"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Jan 12 14:26:49 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 12 14:26:49 2012 -0800"
      },
      "message": "am ff321d49: Merge \"VPN: silence VPN notifications.\" into ics-mr1\n\n* commit \u0027ff321d496a6a07fc667112ecfe4d9a107d44147b\u0027:\n  VPN: silence VPN notifications.\n"
    },
    {
      "commit": "ff321d496a6a07fc667112ecfe4d9a107d44147b",
      "tree": "fda89338361f2ebbc5bc9a8fa7333b54466d1cd2",
      "parents": [
        "aaaafca8543eaa75f1865d70c801c9b62caa56e2",
        "50fe709995d1f126e96cafde133bc4777b31d4ed"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Jan 12 14:24:30 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 12 14:24:30 2012 -0800"
      },
      "message": "Merge \"VPN: silence VPN notifications.\" into ics-mr1"
    },
    {
      "commit": "01b02a734d2988c22b00f5df6346ad03d8bf52b6",
      "tree": "36cc4f3027585963a0db3ad33f907c28182f9fe1",
      "parents": [
        "d3be0a76e46584357dbb77fcd200128d0d7dc9a8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 12 14:05:03 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 12 14:05:03 2012 -0800"
      },
      "message": "Fix issue #5823276: home repaints after full-screen app is exited\n\nDon\u0027t consider a window as a candidate for the top fullscreen window\nif it is not going to be a candiate for layout.\n\nAlso don\u0027t consider windows a candidate for layout if their app token\nis hidden.  This fixes a transient state where we are preparing to\nunhide the window but have not done so yet.\n\nChange-Id: Ife5299ffa003c1df1a4f787b7a2809cbf614ec16\n"
    },
    {
      "commit": "c60a627c0077f8aaa50952ef45175695a6b59ba8",
      "tree": "ef8b4a4247adc7339fb7de54051c41d7c9ab96a3",
      "parents": [
        "d712248e4e447a42a32afa4880892ade4eb439ae",
        "4b1261f17ae2a0180be09b1c987ec7e70b2b46a7"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Jan 12 09:26:33 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 12 09:26:33 2012 -0800"
      },
      "message": "am 4b1261f1: Merge \"Disable wimax when mobile data is in Settings\" into ics-mr1\n\n* commit \u00274b1261f17ae2a0180be09b1c987ec7e70b2b46a7\u0027:\n  Disable wimax when mobile data is in Settings\n"
    },
    {
      "commit": "4b1261f17ae2a0180be09b1c987ec7e70b2b46a7",
      "tree": "06954c77300120fc643b1ceac02e06b1067adb66",
      "parents": [
        "2931d8ace9118bafe08090cd41e235048b6c2eb2",
        "b97d34c7c81ed7def6d0c1d7a76d057051f7d154"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Jan 12 09:24:45 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 12 09:24:45 2012 -0800"
      },
      "message": "Merge \"Disable wimax when mobile data is in Settings\" into ics-mr1"
    },
    {
      "commit": "d712248e4e447a42a32afa4880892ade4eb439ae",
      "tree": "5463a92689d987cd5dc175eddda8e92d09d2851c",
      "parents": [
        "79b499005fcc587e8265574fe4728b110cffe554",
        "2931d8ace9118bafe08090cd41e235048b6c2eb2"
      ],
      "author": {
        "name": "Danielle Millett",
        "email": "dmillett@google.com",
        "time": "Thu Jan 12 07:31:36 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 12 07:31:36 2012 -0800"
      },
      "message": "am 2931d8ac: Merge \"DO NOT MERGE - Cherry picking from master to MR1\" into ics-mr1\n\n* commit \u00272931d8ace9118bafe08090cd41e235048b6c2eb2\u0027:\n  DO NOT MERGE - Cherry picking from master to MR1\n"
    },
    {
      "commit": "50fe709995d1f126e96cafde133bc4777b31d4ed",
      "tree": "cb9a7f123bcd7949be32a6b28f990fa7f9e57fe2",
      "parents": [
        "c15cf3d286f3d63d141b73f639a5a61ddb028029"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Jan 11 14:26:24 2012 -0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Jan 11 14:26:24 2012 -0800"
      },
      "message": "VPN: silence VPN notifications.\n\nBug: 5852859\nChange-Id: I269d8de298a1fd69a8d777150ae97927537a5424\n"
    },
    {
      "commit": "de7a2f30548ac64d67e9ce8ac08090eb5458449d",
      "tree": "b60aa8928c0fe09ea5fe1363d4e5805ca6f046df",
      "parents": [
        "7944704e6c4cc10105838b78d3d8403bf66a066b"
      ],
      "author": {
        "name": "Danielle Millett",
        "email": "dmillett@google.com",
        "time": "Wed Dec 21 17:02:32 2011 -0500"
      },
      "committer": {
        "name": "Danielle Millett",
        "email": "dmillett@google.com",
        "time": "Tue Jan 10 11:40:41 2012 -0500"
      },
      "message": "DO NOT MERGE - Cherry picking from master to MR1\n\nFix 5783857: Device Policy Manager doesn\u0027t allow Face Unlock\n\nThis makes it so that if face unlock is enabled and then a device policy\nmanager that requires something more secure than face unlock is installed,\nthe user will be forced to choose a new acceptable lock type.\n\nThis was previously fixed for the case where the device had been reset, or\nthe shell was restarted after setting face unlock, but not for the case where the\ndevice remained on between setting face unlock and setting up a device policy\nmanager.\n\nAlso changed the function ordering of saveLockPattern() so that the overloaded\nwrapper function is next to the main function.\n\nChange-Id: Ibed8c4ab137ebbc07fb143faef6f047bc6dc4474\n"
    },
    {
      "commit": "035e9a3bd58e8fa43c4df72603ba4a6566eb2513",
      "tree": "911bdd3aa640d916eb3b40763de7436947bec04d",
      "parents": [
        "3355f7a4531eb7dffda7a62ecd824f6b2d387331",
        "7944704e6c4cc10105838b78d3d8403bf66a066b"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jan 06 15:49:21 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 06 15:49:21 2012 -0800"
      },
      "message": "am 7944704e: Merge \"Switch camera sounds to always use the system enforced audio stream.\" into ics-mr1\n\n* commit \u00277944704e6c4cc10105838b78d3d8403bf66a066b\u0027:\n  Switch camera sounds to always use the system enforced audio stream.\n"
    },
    {
      "commit": "b97d34c7c81ed7def6d0c1d7a76d057051f7d154",
      "tree": "5a4d87a7e767ba7ab52ae5a61b0998f62fd6eaa1",
      "parents": [
        "dacbf67ab915fa8b987f6fb9f044160af92652cd"
      ],
      "author": {
        "name": "tk.mun",
        "email": "tk.mun@samsung.com",
        "time": "Fri Jan 06 10:43:52 2012 +0900"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Jan 06 10:32:54 2012 -0800"
      },
      "message": "Disable wimax when mobile data is in Settings\n\n- Add wimax related code in handleSetMobileData to disable wimax when Moblie data is disabled (Settings -\u003e Wireless \u0026 Networks - More -\u003e Mobile Networks -\u003eData Enabled)\n\nChange-Id: Ibf2d9da2eb90d161128005f26ac4b3e991526af4\nSigned-off-by: tk.mun \u003ctk.mun@samsung.com\u003e\n"
    },
    {
      "commit": "b7feb1c91f1053adb1815bc522c43db3f2c3f598",
      "tree": "7ca9c3301b21b0772ffac64bd0fdfd988ec4e750",
      "parents": [
        "dacbf67ab915fa8b987f6fb9f044160af92652cd"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jan 05 15:34:53 2012 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jan 06 10:24:01 2012 -0800"
      },
      "message": "Switch camera sounds to always use the system enforced audio stream.\n\nInstead of picking between the music stream and the enforced audio\nstream, change the camera service to always play sounds through\nenforced system stream. Also update the currently-hidden CameraSound\nAPI to match.\n\nBug: 5778365\nChange-Id: I3cc64b1d1ff567dbac8020a665d5b19846197ff3\n"
    },
    {
      "commit": "5ff84ca0fea9f2da19a064d8d0cd09a3a93709cf",
      "tree": "dca9ea07d311cf3be974246a7d363d72f8e542fc",
      "parents": [
        "71a14a589b83af50f77d628a0d8e6ef1778dd31e",
        "e145b235dae017f5de56cccdf7e27f46c115b38f"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Jan 04 18:14:22 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 04 18:14:22 2012 -0800"
      },
      "message": "Merge \"Show the flags in package manager debugging.\" into ics-aah"
    },
    {
      "commit": "e145b235dae017f5de56cccdf7e27f46c115b38f",
      "tree": "c80136d8f87e274e92fa00200f366c1141a42b70",
      "parents": [
        "0cdf3686aaadfc6ee222cfff301c376c648eb5a5"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Jan 04 18:13:24 2012 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Jan 04 18:13:24 2012 -0800"
      },
      "message": "Show the flags in package manager debugging.\n\nChange-Id: I5f603f52c7199f1fbe377df0794a85450260e974\n"
    },
    {
      "commit": "c31bf88ef0d09b1860bbe5d24d430837b976a4e6",
      "tree": "09460ce73a9e05ff53984bd949fffbb375f2b9b1",
      "parents": [
        "c9d3d0e6a7e6e04a120ab3694d27fb8dbfdd6d50",
        "fb578b6b88af51812b71a86ad4dd3a7de56e394b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 04 13:00:44 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 04 13:00:44 2012 -0800"
      },
      "message": "am fb578b6b: Merge \"audioflinger: fix clicks on 48kHz audio.\" into ics-mr1\n\n* commit \u0027fb578b6b88af51812b71a86ad4dd3a7de56e394b\u0027:\n  audioflinger: fix clicks on 48kHz audio.\n"
    }
  ],
  "next": "72dafb20e036b8844775e3456e5d06a8a8a2cd50"
}
