)]}'
{
  "log": [
    {
      "commit": "72dcb913931e4390380398cfa899d1702790cd6a",
      "tree": "86ff8a75b56e214ac1b795c786f63f5ee8e11301",
      "parents": [
        "89454f8331cd7d582eafca87c6586feb5db509c7"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Apr 09 01:20:02 2013 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Apr 09 13:34:04 2013 +0000"
      },
      "message": "Fix [-] buttons in the notification builder test.\n\n(Broken by change I9fae5a4a).\n\nBug: 8564511\nChange-Id: I0d5b65e6678018630c812c5616e9b3f068029e66\n"
    },
    {
      "commit": "0e78de6c0fadd70277eb29f56ccce97c1dffc4f2",
      "tree": "34cfc600ecfb8770369e68c95b3f3a638073ebad",
      "parents": [
        "edf6f4b49f6e77c349f5055372ce381b74f12efb"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Apr 04 10:58:02 2013 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 08 14:42:41 2013 +0000"
      },
      "message": "Add tag \"foo\" to builder test\u0027s notifications.\n\nThis allows them to be conveniently cleared via adb:\n\n  $ adb shell service call notification 5 \\\n    s16 com.android.statusbartest \\\n\ts16 foo \\\n\ti32 \u003cNOTIFICATIONID\u003e \\\n\ti32 \u003cUSERID\u003e\n\nBug: 8564511\nChange-Id: I9fae5a4a0be64d6707cc06ca938adeb8b3c0b735\n"
    },
    {
      "commit": "5feceebb892d4cb5777cea3c6174b206705d456b",
      "tree": "58feee1605f35b07e70887f4ec017d80b5687436",
      "parents": [
        "bab9687e6473072d6ff4f7ea5a7b21bcfbf95744"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Mar 22 18:29:23 2013 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 05 19:54:44 2013 +0000"
      },
      "message": "New NotificationListenerService.\n\nThis is the best and only way for apps to listen for\nnotifications: create a NotificationListenerService, wait\nfor the NoMan to bind to you (as a result of the user\nchecking a box somewhere in Settings and agreeing to a\nscary dialog box), and you\u0027ll start receiving notification\nposted and dismissed callbacks. Your service, while enabled,\nwill also be able to clear one or all notifications.\n\nUse this power wisely.\n\nThis change moves StatusBarNotification out of\ncom.android.internal into android.service.notification.\n[Internal customers, including System UI and early users of\nthe system-only listener binder API, will need to be\nupdated.]\n\nBug: 8199624\nChange-Id: I1be46f823d4b3ddc901109ec1e085cd6deb740c2\n"
    },
    {
      "commit": "f265ea9d8307282ff1da3915978625a94fc2859e",
      "tree": "4e92b5de30239c1808a395cb49c9b17fe28ccffb",
      "parents": [
        "7a4ecc957d437ad4914988edc7593570f1e43f79"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 31 15:00:51 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 01 15:14:29 2013 -0800"
      },
      "message": "App ops: vibration, neighboring cells, dialing, etc.\n\nImprove handling of vibration op, so that apps are\nbetter blamed (there is now a hidden vibrator API that\nsupplies the app to blame, and the system now uses this\nwhen vibrating on behalf of an app).\n\nAdd operation for retrieving neighboring cell information.\n\nAdd a new op for calling a phone number.  This required\nplumbing information about the launching package name through\nthe activity manager, which required changing the internal\nstartActivity class, which required hitting a ton of code that\nuses those internal APIs.\n\nChange-Id: I3f8015634fdb296558f07fe654fb8d53e5c94d07\n"
    },
    {
      "commit": "205ec5a969963f563b30b37385362ccfebdd5e4c",
      "tree": "b29b968a6d38471e627afbaaaa719a9f1a03d152",
      "parents": [
        "d4d2de2a7778b85f5af9959a5ebf07094727e672"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Nov 14 08:43:18 2012 -0800"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Nov 14 16:42:04 2012 -0500"
      },
      "message": "Clean up the Builder test.\n\n Improved vibration coverage\n Fixed LED color\n Added priority\n Added a start delay (for testing LED while screen off)\n\nChange-Id: I3dab0a1a7494f0fe7631d1af49c0fb9a1fdd3f63\n"
    },
    {
      "commit": "b9d36649ca458cb5326a144fd88e26b92efba728",
      "tree": "8a03fb8bb423e595e37dc1d747541dcba0dc8711",
      "parents": [
        "a1f739ea83b6d770b8469ae1c2c4161f6fe96334"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Oct 19 13:36:58 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Oct 19 13:38:11 2012 -0400"
      },
      "message": "Properly show emoji in the notification ticker.\n\nAdd an emoji test to StatusBarTest (working around some\ndifficulties in actually putting high-Unicode chars in the\nlayout xml).\n\nBug: 7378383\nChange-Id: Ifce9844b26f67d2799521623e5161aa4dad69ed1\n"
    },
    {
      "commit": "1e3b98d47df596d0c4eadbdf60143709f8465b28",
      "tree": "ed63fa39f6d2db3b3a3fd9caf61174129198c6cc",
      "parents": [
        "1f7a09b5df9f859781d9cfa0053fad44c72c2168"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Sep 30 18:58:59 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Oct 01 14:27:34 2012 -0700"
      },
      "message": "New internal API to eliminate poke locks.\n\nAdded a new WindowManager.LayoutParams inputFeatures flag\nto disable automatic user activity behavior when an input\nevent is sent to a window.\n\nAdded a new WindowManager.LayoutParams field userActivityTimeout.\n\nBug: 7165399\nChange-Id: I204eafa37ef26aacc2c52a1ba1ecce1eebb0e0d9\n"
    },
    {
      "commit": "11cf178100e71d3f9f34ab5865e03a277c5eadaa",
      "tree": "1d150aa83ac276d99c9e9978118eadab94791c26",
      "parents": [
        "7bb89cf1632da6dc236e6603c4245301500eeb39"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Sep 27 14:03:08 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Sep 27 14:03:08 2012 -0400"
      },
      "message": "Cleanup internal status bar APIs.\n\nIStatusBarService.collapseQuickSettings is gone;\ncollapseNotifications is now collapsePanels, which does what\ncollapse() used to do. Similarly,\nIStatusBar.animateCollapseQuickSettings is now simply\nIStatusBar.animateCollapse().\n\nBug: 7245229\nChange-Id: Id157d2fdf34926d3c85ffa8b81c741a5359aede4\n"
    },
    {
      "commit": "e20a177d3f147f3011647c3bdab401f90b2c5d1d",
      "tree": "9f06e8e43907e4ea01dc7456865ff39f871749b9",
      "parents": [
        "1ab8a08a9b85aa62045a6a78fd93859382c88b0f"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Sep 25 16:07:46 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Sep 25 16:07:59 2012 -0700"
      },
      "message": "Adding a global accessibility action to open quick settings.\n\n1. Added APIs for opening the quick settings to the StatusBarManagerService\n   and the local StatausBarManager. The new APIs are protected by the old\n   EXPAND_STATUS_BAR permission.\n   Renamed the expand* and collapse* non-public APIs that are expanding\n   the notifications to expandNotifications* collapseNotifications* to\n   better convey what they do given that this change adds\n   expandQuickSettings* and collapseQuickSettings*.\n   Added a global action to the accessibility layer to expand the quick\n   settings which is calling into the new status bar manager APIs.\n\nbug:7030487\n\nChange-Id: Ic7b46e1a132f1c0d71355f18e7c5a9a2424171c3\n"
    },
    {
      "commit": "4120375d46091df8527bb701882e056fbb0e6b06",
      "tree": "30a3e6bb32f1912b8ab687e2ede8cb1cb18fe908",
      "parents": [
        "176d105d2f71198966b566d36d4e856a797695c7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 31 14:05:51 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 31 15:11:13 2012 -0700"
      },
      "message": "Remove Binder.getOrigCallingUid().\n\nReplaced all remaining places that used it with explicit user\nspecification.\n\nWhile doing this, I ran into stuff that was creating PendingIntent\nobjects (that now need to specify the explicit user they are for),\nwhich are also posting notifications...  but have no way to specify\nthe user for the notification.\n\nSo the notification manager in the system process now also gets a\nformal concept of a user associated with the notification, which\nis passed in to all the necessary aidl calls.  I also removed the\nold deprecated aidl interface for posting/cancelling notifications,\nsince we now always need a user supplied.\n\nThere is more work that needs to be done here, though.  For example\nI think we need to be able to specify USER_ALL for a notification that\nshould be shown to all users (such as low storage or low battery).\nAlong with that, the PendingIntent creation needs to be tweaked to\nbe able to handle USER_CURRENT by evaluating the user at the point the\npending intent is sent.\n\nThat\u0027s for another change, however.\n\nChange-Id: I468e14dce8def0e13e0870571e7c31ed32b6310c\n"
    },
    {
      "commit": "9630704ed3b265f008a8f64ec60a33cf9dcd3345",
      "tree": "0c905e55ac062b625bf7a9ced250f05213d7873f",
      "parents": [
        "ff7e6ef4f18ff94a9836492ff3ccd1ba7f6804f3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 27 15:51:34 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 15 03:06:24 2012 -0700"
      },
      "message": "Power manager rewrite.\n\nThe major goal of this rewrite is to make it easier to implement\npower management policies correctly.  According, the new\nimplementation primarily uses state-based rather than event-based\ntriggers for applying changes to the current power state.\n\nFor example, when an application requests that the proximity\nsensor be used to manage the screen state (by way of a wake lock),\nthe power manager makes note of the fact that the set of\nwake locks changed.  Then it executes a common update function\nthat recalculates the entire state, first looking at wake locks,\nthen considering user activity, and eventually determining whether\nthe screen should be turned on or off.  At this point it may\nmake a request to a component called the DisplayPowerController\nto asynchronously update the display\u0027s powe state.  Likewise,\nDisplayPowerController makes note of the updated power request\nand schedules its own update function to figure out what needs\nto be changed.\n\nThe big benefit of this approach is that it\u0027s easy to mutate\nmultiple properties of the power state simultaneously then\napply their joint effects together all at once.  Transitions\nbetween states are detected and resolved by the update in\na consistent manner.\n\nThe new power manager service has is implemented as a set of\nloosely coupled components.  For the most part, information\nonly flows one way through these components (by issuing a\nrequest to that component) although some components support\nsending a message back to indicate when the work has been\ncompleted.  For example, the DisplayPowerController posts\na callback runnable asynchronously to tell the PowerManagerService\nwhen the display is ready.  An important feature of this\napproach is that each component neatly encapsulates its\nstate and maintains its own invariants.  Moreover, we do\nnot need to worry about deadlocks or awkward mutual exclusion\nsemantics because most of the requests are asynchronous.\n\nThe benefits of this design are especially apparent in\nthe implementation of the screen on / off and brightness\ncontrol animations which are able to take advantage of\nframework features like properties, ObjectAnimator\nand Choreographer.\n\nThe screen on / off animation is now the responsibility\nof the power manager (instead of surface flinger).  This change\nmakes it much easier to ensure that the animation is properly\ncoordinated with other power state changes and eliminates\nthe cause of race conditions in the older implementation.\n\nThe because of the userActivity() function has been changed\nso that it never wakes the device from sleep.  This change\nremoves ambiguity around forcing or disabling user activity\nfor various purposes.  To wake the device, use wakeUp().\nTo put it to sleep, use goToSleep().  Simple.\n\nThe power manager service interface and API has been significantly\nsimplified and consolidated.  Also fixed some inconsistencies\nrelated to how the minimum and maximum screen brightness setting\nwas presented in brightness control widgets and enforced behind\nthe scenes.\n\nAt present the following features are implemented:\n\n- Wake locks.\n- User activity.\n- Wake up / go to sleep.\n- Power state broadcasts.\n- Battery stats and event log notifications.\n- Dreams.\n- Proximity screen off.\n- Animated screen on / off transitions.\n- Auto-dimming.\n- Auto-brightness control for the screen backlight with\n  different timeouts for ramping up versus ramping down.\n- Auto-on when plugged or unplugged.\n- Stay on when plugged.\n- Device administration maximum user activity timeout.\n- Application controlled brightness via window manager.\n\nThe following features are not yet implemented:\n\n- Reduced user activity timeout for the key guard.\n- Reduced user activity timeout for the phone application.\n- Coordinating screen on barriers with the window manager.\n- Preventing auto-rotation during power state changes.\n- Auto-brightness adjustment setting (feature was disabled\n  in previous version of the power manager service pending\n  an improved UI design so leaving it out for now).\n- Interpolated brightness control (a proposed new scheme\n  for more compactly specifying auto-brightness levels\n  in config.xml).\n- Button / keyboard backlight control.\n- Change window manager to associated WorkSource with\n  KEEP_SCREEN_ON_FLAG wake lock instead of talking\n  directly to the battery stats service.\n- Optionally support animating screen brightness when\n  turning on/off instead of playing electron beam animation\n  (config_animateScreenLights).\n\nChange-Id: I1d7a52e98f0449f76d70bf421f6a7f245957d1d7\n"
    },
    {
      "commit": "e7e9b6e0339f2636afefc8d3f4cd9d807d94b901",
      "tree": "ae7fcb19a3b4ea91f57d8be01a1fcddcfbad9299",
      "parents": [
        "5380cdc2e1adc8511b05e7623efb44d67be88418"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri May 04 13:14:57 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri May 04 13:31:18 2012 -0400"
      },
      "message": "Fix NPEs in StatusBarTest.\n\nChange-Id: I9245a297a9a09c09415dd38e662692665ae7e109\n"
    },
    {
      "commit": "bc5559f1922d72715940f754faffc82da4100eab",
      "tree": "efe383a3517bd93bb63a5f0a2a90262a4229478c",
      "parents": [
        "26fbf27ad1e9f9c26a82097fe306f07ec36e8410"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Apr 19 01:08:15 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Apr 19 01:08:15 2012 -0400"
      },
      "message": "Expand too-small notifications to fill 64dp.\n\nAlso fix NotificationTestList so it runs again.\n\nChange-Id: I2fb28cd9cfad25a7a1b17ccef9ccd741c3aa99b0\n"
    },
    {
      "commit": "c2346134bb519a54d50655cbef940fc3fdec60a9",
      "tree": "6b86f97b2175bc2b0181cbf123e4f874867e7c91",
      "parents": [
        "069c4f3f0c8190289d60296ec54fafa56abb4776"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 13 01:55:38 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 13 04:05:17 2012 -0700"
      },
      "message": "Extract Vibrator implementation from interface.\n\nMoved the core logic of Vibrator into SystemVibrator, potentially\nallowing for the creation of other Vibrator subclasses.\n\nFixed several places where we were creating new Vibrator\ninstances unnecessarily instead of getting it from the Context.\n\nIt is safe to make Vibrator abstract because its constructor\nwas hidden from the SDK so it was not possible to subclass it.\n\nBug: 6334179\nChange-Id: I18ece6544c26a7efb2d5099f8346a10aef8a5e18\n"
    },
    {
      "commit": "2561b0b10a55841a08e0e1d467e73e10b1bf256d",
      "tree": "707a5812a2d6a711838babe41fd4947b96f13649",
      "parents": [
        "c725a3705ba8646e134091981e84da99fe4076b1"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Feb 13 21:04:12 2012 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Feb 24 13:47:00 2012 -0500"
      },
      "message": "New notification priority and related APIs.\n\nThis change introduces a few new bits of data on\nNotification that will help the Notification Manager and\nSystem UI route and display them more intelligently:\n\n -\u003e priority: an integer in a predefined range that\n    indicates the app\u0027s best guess as to the relative\n    importance (to the user, right now) of that information\n\n -\u003e kind: a tag (really, set of tags) indicating the general\n    type of notification (realtime, asynchronous, etc)\n\n -\u003e extras: a Bundle of additional key/value pairs\n    associated with this notification (currently @hidden)\n\nThe notification manager takes these data into account when\nassigning to each notification a score which is passed with\nthe notification on to the system UI, where it can be used to\naffect presentation. For example:\n\n  - Spammy apps (identified explicitly by the user or by\n    some other means) will have their notifications scored\n    very negatively by the notification manager, allowing\n    the UI to suppress them\n  - Notifications of higher score might be shown larger\n    or in a different way\n  - Very important notifications (indicated by a very high\n    score) might interrupt the user during an otherwise\n    important task (videochat, game, etc)\n\nImplementation note: This replaces/extends the old internal\nnotion of \"priority\", which was mostly used to organize\nongoings and system notifications at the top of the panel.\n\nChange-Id: Ie063dc75f198a68e2b5734a3aa0cacb5aba1ac39\n"
    },
    {
      "commit": "a3850b68399ab49032e1fc2a2eab129fe3a7e69e",
      "tree": "2d7f5433154f0c6843a289d803dc22c589ebb0df",
      "parents": [
        "f352491aad71b5c0a30238707bdb83c9dc34fd9e"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Dec 06 13:36:03 2011 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Dec 07 15:53:00 2011 -0500"
      },
      "message": "Improve handling of small largeIcons in tablet ticker.\n\nThe tablet system bar is too short for a full notification\nrow, but it will show the largeIcon of a new notification in\nits full frame, intruding into the main application content\nrectangle a bit. This is a good thing---the notifications\nreally pop out at you---but it looks a little odd if the\nlargeIcon is actually *small*: the icon is vertically\ncentered in the larger (invisible) rectangle, making it look\npoorly centered on the system bar.\n\nThis change will detect short largeIcons and center them in\nthe system bar\u0027s height instead. Additionally, it applies\nthe same ticker background all the way to the left\nunderneath largeIcons that are not full-frame (and therefore\nhave transparent regions).\n\nBug: 5708907\nBug: 5560485\nChange-Id: I32af45632df164c58fb960110063dbaa08b5536c\n"
    },
    {
      "commit": "dba935659024a9ca83cb6bd3f1a9970e277f7658",
      "tree": "15783108db8c5d47884d800ec88b88a3052ad0a5",
      "parents": [
        "2984971db306b70aab41e5d10b5e1e86b6ed5b29"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Oct 06 16:39:58 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Oct 13 15:28:10 2011 -0400"
      },
      "message": "Break apart DISABLE_HOME and DISABLE_RECENT.\n\nAdditionally, start using setSystemUiVisibility() where\npossible in the keyguard to allow activities and dialogs to\nre-enable some of the navigation keys (notably: home but not\nrecents).\n\nFinally, stop disabling MENU for activities atop the keyguard.\n\nBug: 5380495 // no home in driveabout, clock\nBug: 5396134 // able to show home/recent in keyguard\nChange-Id: I04eb224554ee8cff79476b85148c4cda75bb0b62\n"
    },
    {
      "commit": "029d5877b0c19af09c6a1cb7d1c3d3507e88430c",
      "tree": "28e7cb97326d026aaa9a4b6d19bbd3e8f56a4648",
      "parents": [
        "f4b783f8a7f7ba56a879b0fce075257659e9f909"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Sep 12 00:58:58 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Sep 12 01:02:30 2011 -0400"
      },
      "message": "Hide navigation buttons when they are DISABLEd.\n\nBack is hidden by DISABLE_BACK; Home, Recents, and Menu are\nhidden by DISABLE_NAVIGATION.\n\nBug: 5261576\nBug: 5284740 (confusion about visible inactive icons)\nChange-Id: I410c133b737cc11d61bac0318dc24458353ee7b3\n"
    },
    {
      "commit": "542f0510d42e225546acc01842adfafb27f627b6",
      "tree": "dcddfd675ff8cefcd7cdef7c7edd8180f93cb703",
      "parents": [
        "260e9105d7fc7b11c26a6843658df89b98d65971"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 10 22:26:58 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Aug 10 22:27:15 2011 -0400"
      },
      "message": "Fix fullScreenAlert test.\n\nChange-Id: I3df0a998347c9e3d21e067381bd22eb9a0862f0d\n"
    },
    {
      "commit": "60ee25643e0a7b8841063a4e97b0f18c51807e91",
      "tree": "f950442b0657ea89b9e4fb93361a612dd36dab29",
      "parents": [
        "2043b01b207aae3458da395bc6d501d76e59425c"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Jul 22 12:34:33 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Jul 28 15:18:32 2011 -0400"
      },
      "message": "The fullest of fullscreen modes.\n\nView.setSystemUiVisibility() now properly accepts a\nbitfield, including:\n\n  * SYSTEM_UI_FLAG_LOW_PROFILE: \"lights out mode\"\n    (previously known, erroneously, as STATUS_BAR_HIDDEN)\n\n  * SYSTEM_UI_FLAG_HIDE_NAVIGATION: for when you need every\n    single pixel on a device that also has a navigation bar\n\nThese flags are painstakingly aggregated across the entire\nview hierarchy and carefully delivered to the status bar\nservice, which in turn gently passes them along to the bar\nimplementation.\n\nTo really get access to the whole screen, you need to use\nHIDE_NAVIGATION in conjunction with FLAG_FULLSCREEN and\nFLAG_LAYOUT_IN_SCREEN. See development/samples/Overscan for\nan example of how to do this.\n\nChange-Id: I5fbfe009d9ceebbbf71db73f14a7008ea7c1d4da\n"
    },
    {
      "commit": "6179ea3196e9306d3f14361fe9ef14191b1edba6",
      "tree": "d821da4d5840aebcddf4a714a3217ec595847bc9",
      "parents": [
        "ac4159549c10dbe428d42980278c0e43ecc8d93f"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jun 28 01:12:41 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jul 21 12:04:54 2011 -0700"
      },
      "message": "Adding accessibility support to the Status Bar.\n\n1. Added content description to pretty much all animals\n   in the zoo including buttons in the navigation bar,\n   notifications and status icons for battery, signal,\n   data, etc.\n\n2. Rectored to avoid ovelaying views since they block\n   touch exploratino. In general overlaying views\n   cause trouble for touch exploration and accessibility\n   in general.\n\n3. Avoid sending accessibility events in case the user is\n   touching outside of the StatauBAr panels to avoid\n   confusion.\n\n4. Added records to accessibility events in the places where\n   this would help the presentation. So the event comes from\n   a given \"leaf\" view and its predecessor is adding a record\n   to the event for itself to provide more cotext. It is up\n   to the accessiiblity service to choose how to present that.\n\nbug:4686943\n\nChange-Id: I1c1bd123d828fb10911bca92130e9a05c1f020b3\n"
    },
    {
      "commit": "f81c70944ae1c2566a72b3c20c609b8520ad9456",
      "tree": "c84e9d2c0ef0124e4eb897fc2e4ba7def0f3f639",
      "parents": [
        "c321c19fc91bfec9a74039ed4d37b815dd4ef379",
        "982cbf1cbc302eb1ee4ab10076533281c6a947c7"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Sat Jun 04 07:38:08 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jun 04 07:38:08 2011 -0700"
      },
      "message": "Merge \"Fix the status bar test app.\""
    },
    {
      "commit": "1d4d30aebd2c22627131819cabfe95f97def2c83",
      "tree": "9e94914a6a93a3007d4b57b32f2999a15e5dec03",
      "parents": [
        "ed742306b3d24ba1c2ca3fea0cc2ada8534a18b0"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Apr 28 12:35:29 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Wed May 11 09:48:52 2011 -0400"
      },
      "message": "It\u0027s lights out for you, navigation bar!\n\nViews requesting lights out mode will cause the navbar to\ndisappear (this is useful for viewing videos/photos/etc\nusing every pixel of the screen).\n\nBut there\u0027s a catch: any user activity at all will cause the\nlights to come back on and the navbar to return.\n\nChange-Id: I535ed3ba9ae7fab3282c402be256add765395b6f\n"
    },
    {
      "commit": "982cbf1cbc302eb1ee4ab10076533281c6a947c7",
      "tree": "9f81375f0d5dba59ad5750d3184d13547c124baf",
      "parents": [
        "1ee31175eca2fb5d6a95cb1aa4a9dbf66a5212cb"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Dec 17 14:56:18 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Feb 07 11:41:27 2011 -0500"
      },
      "message": "Fix the status bar test app.\n\nChange-Id: Ib7d047a5ed21393ea9cbcdc343cb0cfbb7c62ff7\n"
    },
    {
      "commit": "e40451a89dc91dfd636af7cb32a23b4a4cc93fdc",
      "tree": "875a847a9a638ce36310887dc7818e02e8cb96dc",
      "parents": [
        "8275c6087897e8fd614681d1cd12db62e6b9fcd5"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Feb 03 14:51:35 2011 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Feb 03 21:11:46 2011 -0500"
      },
      "message": "Ongoing notification for GPS use.\n\nThis change improves upon the notification priority API\nintroduced in change I9e738cc4, allowing privileged clients\nto set the priority of a notification when posting it\ndirectly to INotificationManager. StatusBarTest is updated\nto test this new feature.\n\nThe new LocationController in SystemUI uses this facility to\npost a high-priority ongoing notification whenever GPS is in\nuse (replacing the functionality of the legacy GPS status\nbar icon).\n\nAlso happens to fix http://b/3325472 (adding a log message\nwhen notifications are dropped because of a missing icon).\n\nBug: 3412807\n\nChange-Id: I523016ffa53bf979be98ddc4a2deb55a6270c68a\n"
    },
    {
      "commit": "7bb8eeb90cf55f409a282c1f36ca08aa48c10543",
      "tree": "b31770a3b19b5206ced7152b4794423fd7345b22",
      "parents": [
        "857fd9b8562c29913e03ed29288bd1802d37dc60"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Jan 27 16:00:58 2011 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Jan 27 21:41:24 2011 -0800"
      },
      "message": "Allow the status bar disable flags to be used as View\u0027s system ui visibility fields.\n\nBug: 3363046\nChange-Id: I50ba06ed9a4d2f5d0e0c807437aea9900f44fee9\n"
    },
    {
      "commit": "664644d9e012aa2a28ac96f305b1ce6499ec8806",
      "tree": "d8db43b09de516fefd82adf4fc4ec22417dda648",
      "parents": [
        "fac86056b285bf59c1c3e774f1cb9f6de0be59ba"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sun Jan 23 17:53:23 2011 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sun Jan 23 19:22:52 2011 -0800"
      },
      "message": "visibility (\"lights out\") API.\n\n1. Views may setSystemUiVisibility() to recommend that\nthe system chrome (status bar or other UI) show or hide\nitself.  (This functionality was previously available only\nvia the FLAG_FULLSCREEN window flag for some SystemUI\nimplementations.)\n\n2. Views may register a OnSystemUiVisibilityChangedListener\non a view, and find out when the system UI actually\nappears or disappears, allowing apps to coordinate the\nappearance of their own UI if desired.\n\nBug: 3241144\nChange-Id: Ia1758d94099182d49a1e3688ea2738ae4995b829\n"
    },
    {
      "commit": "80a44401a22344f7eabce6976372ab144ef22893",
      "tree": "b13a229ef7c79e0d98feeb337359f1d060ad0e79",
      "parents": [
        "a47aa87a19c733e28d9d2db1c4eb7f29d668db7b"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sat Jan 15 16:22:24 2011 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sat Jan 15 16:22:24 2011 -0800"
      },
      "message": "Need to update the largeIcon for notifications when we\u0027re reapplying the views.\n\nBug: 3298062\nChange-Id: I6bb72c0b93e00a9de8cc2633ac07add0a572a20f\n"
    },
    {
      "commit": "d070e89396e250782c015bc993bcae6e7e03af7a",
      "tree": "283098f3bef7b236ba1f0d1a1a6e17978b5ef8ee",
      "parents": [
        "a85a91573af97a76ab08ffd5f8558b73283e1faa"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Jan 07 20:50:37 2011 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Jan 10 17:26:39 2011 -0800"
      },
      "message": "Make AppWidgetService handle components enabling and disabling.\n\nChange-Id: Ie6b75cb90be38bbce694ccf2d5a342d7f0172fa4\n"
    },
    {
      "commit": "6f6cf3c5e577aa62cfd959fa5ef046531090ce31",
      "tree": "c9293b2dac1f3e9ee0a93e804c3ebea805d99d4d",
      "parents": [
        "6a4d0a6af20d4ba88f8eeb658c68757c0926cbc5"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Dec 16 12:54:03 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Dec 16 12:54:03 2010 -0500"
      },
      "message": "Reimplement StatusBarManager.disable(DISABLE_SYSTEM_INFO).\n\nBug: 3284968\nChange-Id: I7171b7770c2972bb56672a771c7ed5ca10fb4dda\n"
    },
    {
      "commit": "3e8f5a2c1beb4b918856063880e05125946e4347",
      "tree": "2875e2394cf6e6043323ee9c721f7baa2e364307",
      "parents": [
        "bcdf40b42fb8a4313461233d2db1eb959e2c6a70"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Dec 03 14:52:10 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Dec 03 15:55:04 2010 -0500"
      },
      "message": "Hide navigation buttons and clock on lockscreen.\n\n(This introduces a StatusBarManager disable flag to ask the\nstatus bar to hide just the clock, which might be useful in\nother situations, such as clock/dock apps.)\n\nBug: 3130393\nChange-Id: Ia08627508518e2ed3713ffbf856e4ec42952b3a8\n"
    },
    {
      "commit": "373a9983742b3d2370c36183aca3cde4614e6185",
      "tree": "4582c14e6833fb227bb62b8d5941582b26eb0289",
      "parents": [
        "fefc0743f8b0e8a936f0d138de20eca025ffe8c7"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Tue Nov 30 12:03:59 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Tue Nov 30 15:32:55 2010 -0500"
      },
      "message": "When updating notifications, always reuse the last row.\n\nOrdinarily, changing the \"when\" slot when updating a\nNotification will move its expanded payload to the bottom of\nthe notification panel\u0027s list. But if it\u0027s already at the\nbottom, this causes an unsightly out-then-in animation\nsequence. We now check for that exact situation.\n\nBug: 3222274\nBug: 3162218\nChange-Id: I8b643b3f8bce64e57a22bdbb06d92c196c2484c2\n"
    },
    {
      "commit": "8d0b655c496e9125fc8d289c4e5bc9a78297ba3d",
      "tree": "49ad9d96824e62cf44451de6f20d870e8941e0f5",
      "parents": [
        "83d97c8c7ddff9374f876bef48758414a7775cb1"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Nov 22 16:09:29 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Nov 22 16:19:40 2010 -0800"
      },
      "message": "Add a better notification test and clean up the flag handling in the notification builder.\n\nChange-Id: I9354ed2c2cda690f53e5f43ad60943b63b02e7d4\n"
    },
    {
      "commit": "561d3858bb9409b999a19f7ba93f0b12e1db835f",
      "tree": "c096c7d489c3d73ed8540a202486cc7ed3fdca11",
      "parents": [
        "3f76aa7755fbb2e77ca6a648bbfa1f75680788c9"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sat Nov 20 18:09:34 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sun Nov 21 16:16:28 2010 -0800"
      },
      "message": "The large icon for notifications.\n\nChange-Id: I8537c602b5b5fca03be8980295bfa28330543669\n"
    },
    {
      "commit": "3f76aa7755fbb2e77ca6a648bbfa1f75680788c9",
      "tree": "6a1111f3f09a71ad55ffdda586e3ed8059a4f560",
      "parents": [
        "3fe7f2f2e35692fe563ae00f62995030f1987c4f"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sat Nov 20 13:55:22 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sun Nov 21 16:16:28 2010 -0800"
      },
      "message": "Test for using the right size of notification info text.\n\nChange-Id: Iac8764542ddcd3ef0375f6d6d03225e9f6c2fc1c\n"
    },
    {
      "commit": "8595a3dd9a6feff70f8ddbad924d79b591d611e4",
      "tree": "4812cf3728cfd931cdfaa0e87746369d645325aa",
      "parents": [
        "46439cec0eb0da4d0f853f2d8712d0c00c98475b"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Nov 19 18:12:07 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sun Nov 21 16:16:28 2010 -0800"
      },
      "message": "Show the number in the expanded notification instead of in the bar.\n\nChange-Id: I248b4fe1732ed290e9f3f9c094de4544a0e396ab\n"
    },
    {
      "commit": "46439cec0eb0da4d0f853f2d8712d0c00c98475b",
      "tree": "66439c8d205d8851f16f3e51bb62327cd9ed6be1",
      "parents": [
        "804043193a46a79a8616fd7696fb781edb80b519"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Nov 19 13:56:21 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sun Nov 21 16:16:27 2010 -0800"
      },
      "message": "Update the look of the notifications.  Includes adding a new Notification.Builder class.\n\nChange-Id: I7c57b81c45defe77d6f3d22472e9cf8432bbed03\n"
    },
    {
      "commit": "1a542c7b8ed0be049869a12d1e01e2604d052ac2",
      "tree": "ed1b5acbe31240e259689a6496ed1cf2dfa5dd1b",
      "parents": [
        "3915bb845b032dc184dba5e60970b803390ca3ed"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Nov 08 09:48:20 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Nov 08 13:02:58 2010 -0800"
      },
      "message": "The CHEEK_TOUCH stuff never worked.  Remove it.\n\nBug: 3104906\nChange-Id: Ia37236ba1775fc3ec8c111e2e0b85b105e0dea6a\n"
    },
    {
      "commit": "4058ba052682129f2d1055116aaffb2e91c2013d",
      "tree": "035a170b99400499543ad81f977bdffb72fd53bd",
      "parents": [
        "2b69ce469d544f4b2cb6423feaf4da8df7cf7a64"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sun Oct 31 11:38:04 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sun Oct 31 11:38:04 2010 -0700"
      },
      "message": "Allow both contentIntent and setOnClickPendingIntent in notifications\n\nFrom the app developer\u0027s request:\n\n  Intents assigned to specific views should take precedence over the content intent, but it should not\n  be required to set the content intent to null in order for the view-intents to work\n\nBug: 3107945\nChange-Id: Ic5282d441277a9a8c8c700ef3f43872f3405b58a\n"
    },
    {
      "commit": "b0cc50de14dc9e2d0d224803bb523aa7f48904ac",
      "tree": "6c9ce72f96bcb40a5a39ca9720e362715553a37d",
      "parents": [
        "e5bc8f617b48ab237bec22dd4572e678642f25eb"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Tue Oct 26 16:55:56 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Oct 29 13:33:24 2010 -0400"
      },
      "message": "Notification flyovers.\n\nHold your finger on an individual notification icon to\nquickly show that notification\u0027s payload.\n\nAlso: Quickly swipe up on any icon to open the tray.\n\nBug: 2994009\n\nChange-Id: I2ae2b546fcfa62994b63b9376f487289b2d06796\n"
    },
    {
      "commit": "184498ce5a8d77e1d9c45693363829daaeef9611",
      "tree": "b5508f851174110267189ede8cf551f771a57be1",
      "parents": [
        "5d794412e3e429e47404395badcd11b0b8639e8b"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Oct 08 17:57:18 2010 -0400"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 13 17:29:26 2010 -0700"
      },
      "message": "Allow notifications to not specify a contentIntent.\n\nIf they don\u0027t, the click events will be passed through to the individual\nviews in the notification view, which may have their own PendingIntents\nattached.\n\nPreviously, it was against the UX spec to allow this, but now we are\nchanging that and will have buttons in there.\n\nChange-Id: I674234212f64b2b8802a0708b7eed0614e147ca3\n"
    },
    {
      "commit": "39b4867d483cc9aba36b26a81074d9f606661671",
      "tree": "9929b2985dc6138d91e7d06afc88b1dd4056253d",
      "parents": [
        "1cb9465372f9439afbe9d5400a16328e6d9bc8da"
      ],
      "author": {
        "name": "Jason Chen",
        "email": "jasonchen@google.com",
        "time": "Fri Oct 08 16:22:53 2010 -0700"
      },
      "committer": {
        "name": "Jason Chen",
        "email": "jasonchen@google.com",
        "time": "Fri Oct 08 16:22:53 2010 -0700"
      },
      "message": "Revert \"Merge \"Allow notifications to not specify a contentIntent.\"\"\n\nThis reverts commit 8885321046622d6a8c0a4214af98dc27eecd48a0, reversing\nchanges made to 61b8aaadd742f0be708cd37971d2c9e822bf778a.\n"
    },
    {
      "commit": "80a752c5373cfa906568302c831710b5c22a8155",
      "tree": "88f00113098aaf46a9ef43e43bf4b9c0c1b6c841",
      "parents": [
        "481bbb9c11e640cc6b322bdb300f69f31ea011fe"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Oct 08 17:57:18 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Oct 08 17:57:18 2010 -0400"
      },
      "message": "Allow notifications to not specify a contentIntent.\n\nIf they don\u0027t, the click events will be passed through to the individual\nviews in the notification view, which may have their own PendingIntents\nattached.\n\nPreviously, it was against the UX spec to allow this, but now we are\nchanging that and will have buttons in there.\n\nChange-Id: Ie3b2e96c6a1c4449fa86ed571f3ad0f047320d31\n"
    },
    {
      "commit": "2cddeb4b82d02b540234b7b2ca0e2c0f163fc5d6",
      "tree": "8dc301c1870c9a966b17a2b7f5c22a05a59349a1",
      "parents": [
        "a458719bb6ebbcce99d4dba43af4bd51c5a06216",
        "2c164747d364c3e51964d03ecefc5752c7c0c6ba"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Oct 07 12:22:03 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 07 12:22:03 2010 -0700"
      },
      "message": "am 2c164747: am f7872780: Merge \"PowerManagerService needs yet another flag...\" into gingerbread\n\nMerge commit \u00272c164747d364c3e51964d03ecefc5752c7c0c6ba\u0027\n\n* commit \u00272c164747d364c3e51964d03ecefc5752c7c0c6ba\u0027:\n  PowerManagerService needs yet another flag...\n"
    },
    {
      "commit": "2c164747d364c3e51964d03ecefc5752c7c0c6ba",
      "tree": "144eb40c689b77a4e0f4f7d3edef7f17f5a2fb47",
      "parents": [
        "56ee1080f004110bff622e5b60c243d9cabfe120",
        "f7872780ca3dae9584251b1e3495aed12110254c"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue Oct 05 14:45:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 05 14:45:28 2010 -0700"
      },
      "message": "am f7872780: Merge \"PowerManagerService needs yet another flag...\" into gingerbread\n\nMerge commit \u0027f7872780ca3dae9584251b1e3495aed12110254c\u0027 into gingerbread-plus-aosp\n\n* commit \u0027f7872780ca3dae9584251b1e3495aed12110254c\u0027:\n  PowerManagerService needs yet another flag...\n"
    },
    {
      "commit": "8274a0e53630f80ab356f69ddad895ed9638574e",
      "tree": "7af4bd25c92f7384a1805c53aec17be197693963",
      "parents": [
        "b9a40068b590b86904b40bf466571b140d0f94b4"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue Oct 05 17:38:09 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue Oct 05 17:39:01 2010 -0400"
      },
      "message": "PowerManagerService needs yet another flag...\n\n... to make sure that if you press the power button to turn off the\nscreen, that the prox sensor won\u0027t turn it back on.\n\nBug: 3011618\nChange-Id: Id16c1d65417539d4592f485b1c3efb737540c3cd\n"
    },
    {
      "commit": "066b5c5166c1f5342bd42aa0d68f784a5f4c1dd1",
      "tree": "5f8fa1f2065458313c114a7b7e1c4b73ad00ebb6",
      "parents": [
        "4243a3a6ed571b17668a3caca7a535508893501f",
        "77e42376823197ae7fb3cea2afcca734723174a5"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue Oct 05 12:37:03 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue Oct 05 12:37:03 2010 -0400"
      },
      "message": "manual merge Merge commit \u002777e42376\u0027 into work\n\nConflicts:\n\tpackages/SystemUI/res/values/colors.xml\n\tpackages/SystemUI/src/com/android/systemui/statusbar/StatusBarService.java\n\nChange-Id: I891c8a9f6410037ca7805507e85a17f1655c115e\n"
    },
    {
      "commit": "77e42376823197ae7fb3cea2afcca734723174a5",
      "tree": "043fe1bf0d3684eade58b911b33e4d8e756d0874",
      "parents": [
        "7008b7c1c47ed47bcd895e4a660cef91da048645",
        "87efbbb563ef96a74ffd2fbbe5c0865a450254df"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Oct 04 14:44:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 04 14:44:40 2010 -0700"
      },
      "message": "am 87efbbb5: Merge \"implement the number bubbles on the status bar\" into gingerbread\n\nMerge commit \u002787efbbb563ef96a74ffd2fbbe5c0865a450254df\u0027 into gingerbread-plus-aosp\n\n* commit \u002787efbbb563ef96a74ffd2fbbe5c0865a450254df\u0027:\n  implement the number bubbles on the status bar\n"
    },
    {
      "commit": "6c01a11a20d5fc796360e5e97998401a6cc84f27",
      "tree": "7a09ab73d21027c887f21adb90fa8dbca5e98375",
      "parents": [
        "eb6e22f29ded58e7e51702c34878fd01e20ff802"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Oct 04 17:38:47 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Oct 04 17:40:24 2010 -0400"
      },
      "message": "implement the number bubbles on the status bar\n\nBug: 2993482\nChange-Id: I73b1f8c39e995fd4f986c25ea04127eb23c3cd07\n"
    },
    {
      "commit": "7ebd659dbf3aa672cd1a686938f3df22d429be1f",
      "tree": "8b20433831b23de28592f8022e65e89195e02b2c",
      "parents": [
        "c18ac6ef8475bf0b4a200054f898498bc21e1534",
        "f9f9e248a034b3dd891a7bd9f476b1cad5f33779"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Sep 27 14:13:46 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Sep 27 14:13:46 2010 -0700"
      },
      "message": "Merge commit \u0027f9f9e248\u0027 into manualmerge\n\nConflicts:\n\tpackages/SystemUI/src/com/android/systemui/statusbar/StatusBarService.java\n\ttests/StatusBar/src/com/android/statusbartest/StatusBarTest.java\n\nChange-Id: Ibbb2fec2d8c6f5d41398272753d271dfae698100\n"
    },
    {
      "commit": "f9f9e248a034b3dd891a7bd9f476b1cad5f33779",
      "tree": "4502b7564eb6e8de12331dea641c8888371b4edd",
      "parents": [
        "45a83a896701f61f72082f7116b85d1537ebf4cb",
        "6fa4de3cffe1390f699051fa0c7d21e8058a5ebd"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Sep 27 11:56:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 27 11:56:24 2010 -0700"
      },
      "message": "am 6fa4de3c: Merge \"If an icon add remove get coalesced, don\\\u0027t remove some other icon.\" into gingerbread\n\nMerge commit \u00276fa4de3cffe1390f699051fa0c7d21e8058a5ebd\u0027 into gingerbread-plus-aosp\n\n* commit \u00276fa4de3cffe1390f699051fa0c7d21e8058a5ebd\u0027:\n  If an icon add remove get coalesced, don\u0027t remove some other icon.\n"
    },
    {
      "commit": "795f2840b4a70bf188c2f24c8c06f73a492b338c",
      "tree": "97017469832ff5a7c875a38fb31456528c12e92b",
      "parents": [
        "4e9751f0770c8bfe6f7d57465cba754af5aa942b"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Sep 27 11:34:46 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Sep 27 11:34:46 2010 -0700"
      },
      "message": "If an icon add remove get coalesced, don\u0027t remove some other icon.\n\nAlso adds a test case and turns off the extra logging we added to debug this.\n\nChange-Id: I8640938ae4d1e75c88213177888f363e05ce0fa0\n"
    },
    {
      "commit": "091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bf",
      "tree": "5f3140665244098cd07ebefd650c002045a1b72f",
      "parents": [
        "098e0edbe6afd57eecef7c033035894db5b65b99"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Sun Sep 26 18:04:44 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Sun Sep 26 19:07:51 2010 -0700"
      },
      "message": "Implement disable() on the status bar.\n\nThis includes adding the new DISABLE_NAVIGATION flag.\n\nBug: 3000770\nChange-Id: I6d1c3586198e13e06b5d26e8b23a9495dc4ba02e\n"
    },
    {
      "commit": "ddf680bff5bb9bc04ef04667644db8ade0b38c46",
      "tree": "eff238f7b66bcd7e7faf3d7f98692f7635ddc681",
      "parents": [
        "30a31ef6e51abe8074e22508d88b96d24752ce0a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Sun Sep 26 13:59:40 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Sun Sep 26 13:59:40 2010 -0700"
      },
      "message": "Touching the blue glow should close the system and notification panels.\n\nBug: 3029373\nChange-Id: I96760656dcda20ab238305900f9964083a8e5273\n"
    },
    {
      "commit": "ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fc",
      "tree": "f528a7580bee46ead66e3d5153abb268a22075d6",
      "parents": [
        "4200dcaa7bd8b4efb6b88114dba8b93e6181c252"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Sep 17 18:38:38 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Sep 20 14:14:02 2010 -0400"
      },
      "message": "Tablet ticker.\n\nChange-Id: Ia3db5cc29eac1703123de3e1c6dc7c22e7d024eb\n"
    },
    {
      "commit": "9305647eb61bb60a1f42481a0c0d208dc9bbe965",
      "tree": "e778597b64e7f72131ffcdcbdc18ac9311b4c525",
      "parents": [
        "5af8c63e487841db70314d7d512e6bafddcbb149"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Sep 10 10:30:46 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sun Sep 12 13:25:06 2010 -0400"
      },
      "message": "Plumb lights out mode through from the window manager to the status bar running in the system ui process.\n\nLights out mode itself isn\u0027t implemented.\n\nChange-Id: Ieeef0eb9ae5be23000f770e74e8ee66472f4c673\n"
    },
    {
      "commit": "44af754cf0c9ad9a8162e1bd2af60737e81a8beb",
      "tree": "dc82615fca74b557d74e5af807e43fc7c126a928",
      "parents": [
        "8328578152fbfd23952a6cda4b2e60853d78eb74",
        "d02bdaab495641ab50e2123fdfd99a819cc40540"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Aug 27 20:00:29 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 27 20:00:29 2010 -0700"
      },
      "message": "am d02bdaab: Remove experimental immersive mode support. DO NOT MERGE\n\nMerge commit \u0027d02bdaab495641ab50e2123fdfd99a819cc40540\u0027 into gingerbread-plus-aosp\n\n* commit \u0027d02bdaab495641ab50e2123fdfd99a819cc40540\u0027:\n  Remove experimental immersive mode support. DO NOT MERGE\n"
    },
    {
      "commit": "d02bdaab495641ab50e2123fdfd99a819cc40540",
      "tree": "63b4618d41b340ea2d4f01b98da2ce0ba478c032",
      "parents": [
        "7046bd924f77c54585b9e0e0c95e5edd2ceb55a3"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 26 10:28:46 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Aug 27 22:57:39 2010 -0400"
      },
      "message": "Remove experimental immersive mode support. DO NOT MERGE\n\nBug: 2949215\n\nChange-Id: I7d998ef571ef7e149bb96261430e92150b80b77d\n"
    },
    {
      "commit": "6cf5eb0606ecdc22e7c431971a0c621413564840",
      "tree": "7559af2a1a63e539932ac2d8675110efa088b18c",
      "parents": [
        "3a59ddc67c6ad33c01d36338603586f90d94e71b",
        "3f677b1b3e45240728de39d60441d791c0e8d3f8"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Aug 20 06:03:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 20 06:03:41 2010 -0700"
      },
      "message": "am 3f677b1b: Merge \"Fix periodically disappearing status icons.\" into gingerbread\n\nMerge commit \u00273f677b1b3e45240728de39d60441d791c0e8d3f8\u0027 into gingerbread-plus-aosp\n\n* commit \u00273f677b1b3e45240728de39d60441d791c0e8d3f8\u0027:\n  Fix periodically disappearing status icons.\n"
    },
    {
      "commit": "0398bf70e703e89aacb074e4ef9b4a86843e3d06",
      "tree": "48ee9a9496e0435685d536e37b58f0041cd1c0f2",
      "parents": [
        "bccfcd95d3cc4029c1ed8514d31436a857283873"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 19 14:55:38 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Aug 19 16:59:11 2010 -0400"
      },
      "message": "Fix periodically disappearing status icons.\n\nOccasionally the animation listener wasn\u0027t being told that\nthe ticker animation had completed; this callback was\nessential to keeping the status bar\u0027s internal state correct\n(namely, setting mTicking\u003dfalse). The safest thing to do is\nsimply set mTicking to false immediately upon tickerDone()\nor tickerHalting().\n\nBug: 2915280\nChange-Id: I997911b12fa2985fa83b42154fb3485220886219\n"
    },
    {
      "commit": "8a76a9085dbbca87b4c172577ca264d8b5f2ab32",
      "tree": "8b761a8db3c8683ebf6b39e926c1ebff4ad12f27",
      "parents": [
        "f9b8e9018bf8ab012ec734262620d3274b2cd2ec",
        "9150cff64abc79927ade28061ac99a1ebf812905"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 15:59:10 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 29 15:59:10 2010 -0700"
      },
      "message": "am 9150cff6: Merge \"Replaced /sdcard with Environment.getExternalStorageDirectory()\"\n\nMerge commit \u00279150cff64abc79927ade28061ac99a1ebf812905\u0027 into gingerbread-plus-aosp\n\n* commit \u00279150cff64abc79927ade28061ac99a1ebf812905\u0027:\n  Replaced /sdcard with Environment.getExternalStorageDirectory()\n"
    },
    {
      "commit": "8b85dceadf281705a94d7546556fa5969364a658",
      "tree": "70a792817fc48a1145f52516d542b05ea945557f",
      "parents": [
        "45988040454b710c20abf5fda74cdafb874a28bf"
      ],
      "author": {
        "name": "Christian Mehlmauer",
        "email": "FireFart@gmail.com",
        "time": "Mon Jul 19 20:11:27 2010 +0200"
      },
      "committer": {
        "name": "Christian Mehlmauer",
        "email": "FireFart@gmail.com",
        "time": "Mon Jul 19 20:12:31 2010 +0200"
      },
      "message": "Replaced /sdcard with Environment.getExternalStorageDirectory()\n\nChange-Id: I9a7413f81090b69c82ca6b1e585f5e379b19e60c\n"
    },
    {
      "commit": "b59b94456b3a8fdfdf524a81274839f657fbb65b",
      "tree": "c8a90be19afe6c1e7f95b374a4f0910d1b64e7a6",
      "parents": [
        "2e6aff8e19ce8292a36fe211f8051dccf1fb9670"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jun 30 16:25:33 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jul 07 14:06:27 2010 -0400"
      },
      "message": "Fix icon size in intruder alerts.\n\n(Updated test app to confirm the fix.)\n\nChange-Id: Ife56cf07f282786162e2ebc5aaddbb24dac6cafd\n"
    },
    {
      "commit": "27a8be4b3526f068e911c8edcd4ee6fa6f492c0f",
      "tree": "d778af9e664e886c0c9b3e44c9e7dccb3af24b2f",
      "parents": [
        "059f009d970fb37ac4e408dcf8e1d2d2cdcf0a84"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Jun 29 15:19:54 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Jun 29 15:19:54 2010 -0400"
      },
      "message": "Support for tapping on an immersive-mode priority notification.\n\nWhen the user taps on an intruder alert (the priority\nnotification in immersive mode), the .contentIntent in the\nNotification object will be sent, just as we handle tapping\non a normal Notification in the windowshade.\n\nChange-Id: Ib6991837b0b2122fe138cddacf347fdbc426b99d\n"
    },
    {
      "commit": "8896783dc1d31c5274b277c364da0ffe7cc27cca",
      "tree": "1ca6a3aef94fe193b0cc4379fcc708b512af764b",
      "parents": [
        "87160757e827e8e158d233de09d70e7128184729"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jun 23 15:29:59 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Jun 24 22:09:35 2010 -0400"
      },
      "message": "Updated StatusBar test app for new notifications API.\n\nNew actions:\n - Toggle activity\u0027s immersive mode\n - Post a priority notification with fullScreenIntent\n   that launches an alert-like activity\n\nChange-Id: Ie38372209985577b6db856924c19914c000e1cec\n"
    },
    {
      "commit": "0faeb078cf2bf689eaa69e7041013c5152281b4f",
      "tree": "8f79a41d375af88ce6274b8732ca62854d8d15dd",
      "parents": [
        "75144ea38e79e3827e69a9f5b53a6fd3a74c4df5"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Jun 07 12:36:51 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 14:33:31 2010 -0700"
      },
      "message": "Add a test item the turns on a bunch of extra icons.\n\nChange-Id: Ia5884ef46a5b0fa2d608c7924b3eb12293a1da8b\n"
    },
    {
      "commit": "005847b03b2ebe3eb1a974a8a04ad51bca6636cd",
      "tree": "1664f30f2320bddcf44b0af581b492589a38fcda",
      "parents": [
        "d956ae8b813da893ab6a9357acfe287c529d6ac2"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jun 04 16:08:02 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 09:15:25 2010 -0700"
      },
      "message": "Handle errors inflating notifications (and their icons).\n\nOn an inflation error, the StatusBarService cleans up, removes / doesn\u0027t add\nthe views, and calls into the StatusBarManagerService, which tells the\nNotificationManagerService to remove the notification.\n\nThat then calls all the way back into the StatusBarService, but I think being\nextra careful is okay.  Throughout the status bar, it\u0027s all keyed off of the\nIBinder key, so if the app comes in with a good notification while we\u0027re\ncleaning up, we won\u0027t lose the new notification or anything like that.\n\nChange-Id: Iea78a637495a8b67810c214b951d5ddb93becacb\n"
    },
    {
      "commit": "d2b1f00e1e34cdce0047af7374aa57b1e4b5b040",
      "tree": "24d8b0b9971e44aa47fcb9e7b5e7eafb5493b237",
      "parents": [
        "55f8209da3048768a6dc24929dec8798e8ddf077"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jun 04 10:42:41 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 09:15:25 2010 -0700"
      },
      "message": "Add some disabled logging and another test case for reapplying the notification views.\n\nChange-Id: I839d7771ab42a5d508ce7d15385f6ac6a4e3be83\n"
    },
    {
      "commit": "175f79c5a556416817a8f8674b2e0ac3b3cb6e6b",
      "tree": "4d7b980d4810e7ab3d86f8cebfa8083f20627f9b",
      "parents": [
        "5ee67ebff2e267c02216911f9bf0fc28196c5361"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 26 14:31:09 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 14:48:44 2010 -0700"
      },
      "message": "In fact, switching an item between ongoing and notifications works.\n\nThe test just wasn\u0027t testing that.\n\nChange-Id: If1af2a7258d2a3764f845d9862a0a0ff62b1d7ed\n"
    },
    {
      "commit": "871bdb9867f6630d8bb28e5607263e8bf4eac3ba",
      "tree": "6b3579f5b72d78d3333ba5c2b1d2566775d932b3",
      "parents": [
        "20da8f8ac9cfc8b845231c6b93f5b64a764ab39a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon May 24 18:36:53 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 14:48:44 2010 -0700"
      },
      "message": "Handle bad icon resources.\n\nChange-Id: I87c5fe68ad8016596068ba7889f3b6d36da3386b\n"
    },
    {
      "commit": "0e26dffd6cfcb09b08a94a857b891fdef7fe2b1e",
      "tree": "4d558b0f54053f69b942cce90d4950f4d34ee92f",
      "parents": [
        "66b4c5bb36f57a9d83bb7f34288235b82f9be407"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon May 24 16:17:02 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 14:48:44 2010 -0700"
      },
      "message": "updateNotifications works.\n\nChange-Id: I924763a2d42ca1967719f3eb72c57d1cbb912dd7\n"
    },
    {
      "commit": "4762c2d75a55e0854bbff2f996748116d4ab1a37",
      "tree": "7467da673f3e8e753a79ad044fc24e9ebb237a08",
      "parents": [
        "f3f0e053f0cc66249a11639eb67d0cdc2da26ded"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon May 17 15:42:59 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 14:48:42 2010 -0700"
      },
      "message": "Add expand and collapse.\n\nChange-Id: I58ad95c59b2c46d3f25349e137d5624aefc6c6cd\n"
    },
    {
      "commit": "1bd7597b8cdaf39d1183077c463cb30596eb31b0",
      "tree": "46dac341fbbf03488856ef6d6975ab124ac01874",
      "parents": [
        "c8763858cfcae8be89c0f88df87bf9a3ad90ae64",
        "ef367529f9c7a538d74599b37b49ac309d0a8d8c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 02 08:54:47 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 02 08:54:47 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I8333e295ba6b6ed8e7658ecf3fbf1ebea3537aeb\n"
    },
    {
      "commit": "ef367529f9c7a538d74599b37b49ac309d0a8d8c",
      "tree": "135c2f1710bc394e1d55c2096acaed5e09d76523",
      "parents": [
        "d6c1919779acb042392615637b9007e0c4b89023"
      ],
      "author": {
        "name": "Christian Mehlmauer",
        "email": "FireFart@gmail.com",
        "time": "Mon May 31 23:08:30 2010 +0200"
      },
      "committer": {
        "name": "Christian Mehlmauer",
        "email": "FireFart@gmail.com",
        "time": "Mon May 31 23:08:30 2010 +0200"
      },
      "message": "Replaced raw string arguments for Context.getSystemService() with final Context variables\n\nChange-Id: If5139a1526101292e5da557bfad3f4db80fb64a8\n"
    },
    {
      "commit": "8382068ef2d385183f090373f3b0c6026bd56a99",
      "tree": "91cf789688b99263ee2b206b6fe117209c42d41c",
      "parents": [
        "f7fb5331e5635ee5b16ba77170229eb7e59ca5ea",
        "1152df7e82f1501e72aee1641d028bd7201f6d0b"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon May 17 10:38:00 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon May 17 10:38:00 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I139c349b80b2cecfbdc30bd697cba099740293d9\n"
    },
    {
      "commit": "b0fbe297c50df5dcfb81721fd6079dd7125f88e0",
      "tree": "d361f944f43c293cdf136ba64063709c13836517",
      "parents": [
        "7bb2581e6f404da0edba9ebb81b0d0593715eb40"
      ],
      "author": {
        "name": "Mattias Östergren",
        "email": "mattias.ostergren@sonyericsson.com",
        "time": "Fri Mar 05 09:44:15 2010 +0100"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonyericsson.com",
        "time": "Fri Mar 05 09:44:15 2010 +0100"
      },
      "message": "Updated RGB LED test cases\n\nThe test cases for turning on the RGB LED with persistent light was corrected.\nThe color for blinking was updated to blue. And finally an option for turning\noff the lights was added.\n"
    },
    {
      "commit": "91e1d0cddaaec5e077ca689744463901f9d5d580",
      "tree": "f759d1bd29d9cb616911015817dcc50b543d0ceb",
      "parents": [
        "1ec608d13abe5b744df97a6394a6324c5540c79d"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Feb 04 15:41:20 2010 -0800"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Feb 04 15:55:00 2010 -0800"
      },
      "message": "Add support in StatusBarManager for disabling ticker text.\n\nThe new flag, DISABLE_NOTIFICATION_TICKER, will be used by\nthe car dock app (in conjunction with DISABLE_EXPAND) to\nminimize distractions to the driver.\n\nIt may also be used by the secure lockscreen to avoid\nleaking personal information when the screen is on but the\ndevice is locked (e.g. when the desk dock app is running).\n\nChange-Id: Ibc8efde7da7501767163ae0a75f7c369b824e2a2\n"
    },
    {
      "commit": "68065e0a1980ab6abf8963b48b011efa017fe1c2",
      "tree": "3d6d4184f359e3bfea6783a97d0de7c2d99d7ab5",
      "parents": [
        "378a1488bb76d4786025a10e36c2d638cbd2cb6a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Feb 03 20:21:41 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Feb 03 20:21:41 2010 -0800"
      },
      "message": "Fix 1667521 - system process crash after bad notification\n\nThe steps to reproduce this were kind of interesting.  You needed to have\na notification with a bogus RemoteViews in the first position in the list,\nand then have another notification come in with an earlier timestampe.  In\nthat case, it would get a bad index for the new (not bogus) view that was\nbeing added.\n"
    },
    {
      "commit": "c83bb730ec0333e52990a40edf6d54bb66b1d5ba",
      "tree": "d64faa280ae393891673278b4d61ec274a8e4259",
      "parents": [
        "63ce8e817c9b800b4f08b64c343e533783961b6e"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Jan 19 16:32:22 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Jan 19 16:32:22 2010 -0800"
      },
      "message": "Add DateTimeView, a widget that shows a time or the date depending on the\ncurrent time.  Use that for notifications instead of a TextView that\ndoesn\u0027t ever update.\n\nBUG 1563917\n"
    },
    {
      "commit": "e71d9e421da070705a8f37aaf702282467a9fe7f",
      "tree": "e37a5058e51b56307c78116d824d11c0e9d7989d",
      "parents": [
        "27c6dd7aa4ff6f57435a3c87d8b9a782cf7c9116"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Nov 05 17:12:18 2009 -0500"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Nov 05 17:12:18 2009 -0500"
      },
      "message": "Another test for StatusBar test.\n"
    },
    {
      "commit": "32f114b3c73c0c9146d507ac1473be1700eba14b",
      "tree": "28fdabfed5e44dc9e665099679cb750b19111b0b",
      "parents": [
        "a2debb356d857b2ee1ca26f95ed0136398393acd"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "",
        "time": "Fri Mar 27 16:54:49 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 16:54:49 2009 -0700"
      },
      "message": "AI 143279: am: CL 142828 am: CL 142827 Fix a typo that made the blink rate of the LED incorrect.\n  (and add a test that helped me debug it)\n  Original author: joeo\n  Merged from: //branches/cupcake/...\n  Original author: android-build\n  Merged from: //branches/donutburger/...\n\nAutomated import of CL 143279\n"
    },
    {
      "commit": "36197e77c34b33135b4a3dc89d36ce80320dcd72",
      "tree": "f6df7c9b4f990fcac985fd62a8830119059b2b24",
      "parents": [
        "df940486a401378e6942c06a3b8178c2537ecce0"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "",
        "time": "Tue Mar 24 19:10:48 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 19:10:48 2009 -0700"
      },
      "message": "Automated import from //branches/master/...@141000,141000\n"
    },
    {
      "commit": "105925376f8d0f6b318c9938c7b83ef7fef094da",
      "tree": "3b19ee2bd8704cb9c6a0da7e42dec6759183de6d",
      "parents": [
        "ba87e3e6c985e7175152993b5efcc7dd2f0e1c93"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 18 17:39:46 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 18 17:39:46 2009 -0700"
      },
      "message": "auto import from //branches/cupcake_rel/...@140373\n"
    },
    {
      "commit": "4df2423a947bcd3f024cc3d3a1a315a8dc428598",
      "tree": "e7dac2c5a367b169e7f05a36058cf470e93f003b",
      "parents": [
        "c474dec3ffa1c0fe37edb3e701684188f7e8e7bc"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 05 14:34:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 05 14:34:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@136594\n"
    },
    {
      "commit": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "f013e1afd1e68af5e3b868c26a653bbfb39538f8",
      "tree": "7ad6c8fd9c7b55f4b4017171dec1cb760bbd26bf",
      "parents": [
        "e70cfafe580c6f2994c4827cd8a534aabf3eb05c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    }
  ]
}
