)]}'
{
  "log": [
    {
      "commit": "0f208eb707926f0afc1ce073be866bedd4955aa2",
      "tree": "cb14defbd86887db0bfc4928c2a8ac19b4b57306",
      "parents": [
        "28c0b714ac7f6c98d63aab106447bfd1e727fae2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Jul 26 15:14:21 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Jul 26 15:41:21 2014 -0700"
      },
      "message": "Remove DozeHardware since it will not be used.\n\nBug: 16516536\nChange-Id: I14597d3c9470c94e3bc5b8cff500d2fe6b2fd977\n"
    },
    {
      "commit": "970d4132ea28e748c1010be39450a98bbf7466f3",
      "tree": "0bbaa479dbb4c9b9f8b49b9fe7e7344d7f0581cc",
      "parents": [
        "f89bff9ed875c1e3ad8e682e651c5994b246cc53"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Jul 19 11:33:47 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jul 22 01:18:26 2014 +0000"
      },
      "message": "Allow dreams to control screen state and brightness.\n\nAdded setDozeScreenState() and setDozeScreenBrightness() methods to\nDreamService.  The values specified here only take effect once\nstartDozing is called and can be changed while dozing.\n\nThis required some significant rework of the display power controller\nbut the result seems quite nice and better represents the policy\nwe want to apply.\n\nChanged the test dream a little bit to make it flash the screen\nevery minute using the new functions.\n\nBug: 15903322\nChange-Id: I83bcc34503f1b87727d2b2b3c0ef08507f9f0808\n"
    },
    {
      "commit": "037c33eae74bee2774897d969d48947f9abe254f",
      "tree": "9f6a33f07f48b9a08088eb287c1bfdd1fd97bda5",
      "parents": [
        "7289f3ab8f05db6206d696d75f460fadc05dc731"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 09 00:31:55 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 10 20:46:14 2014 -0700"
      },
      "message": "Plumb display power state through display manager.\n\nDeclare a new method, Display.getState() to retrieve the actual\npower state of a display.\n\nImproved documentation for Intent.ACTION_SCREEN_ON and\nIntent.ACTION_SCREEN_OFF to clarify what they really mean in\nterms of the interactive state of the device.\n\nDeprecated PowerManager.isScreenOn() and replaced it with\nPowerManager.isInteractive() with a more suggestive name and\nbetter documentation.\n\nRedirect display power state changes to go through the display\nmanager first and only then head over to the power manager for\nlegacy compatibility.\n\nEliminated the bright here and woke here policy flags since they\nwere unused.  Simplified the input dispatch policy somewhat.\n\nEnsure that screen wake locks are respected up until the point\nwhen dozing really begins.\n\nFixed a regression in DreamService where onDreamingStarted\nmight be called before onWindowAttached.\n\nBug: 13133142\nBug: 13472578\nBug: 13929355\nBug: 13760290\nChange-Id: Iabef96921dd554ce3768fb18619cefc3230b5fb0\n"
    },
    {
      "commit": "2687550272ba061448f5d5b914700dc335299ee7",
      "tree": "fc68c5ecec24ec2aa120ccf490d7a56573704a73",
      "parents": [
        "d43ad2f35abcc647f7985abd09ed9de5899faf18"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jan 30 21:47:47 2014 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 20 13:39:13 2014 -0800"
      },
      "message": "Add a new \"doze mode\" based on Dream components.\n\nWhen a doze component has been specified in a config.xml resource\noverlay, the power manager will try to start a preconfigured dream\nwhenever it would have otherwise gone to sleep and turned the\nscreen off.  The dream should render whatever it intends to show\nthen call startDozing() to tell the power manager to put the display\ninto a low power \"doze\" state and allow the application processor\nto be suspended.  The dream may wake up periodically using the\nalarm manager or other features to update the contents of the display.\n\nAdded several new config.xml resources related to dreams and dozing.\nIn particular for dozing there are two new resources that pertain to\ndecoupling auto-suspend mode and interactive mode from the display\nstate.  This is a requirement to enable the application processor\nand other components to be suspended while dozing.  Most devices\ndo not support these features today.\n\nConsolidated the power manager\u0027s NAPPING and DREAMING states into one\nto simplify the logic.  The NAPPING state was mostly superfluous\nand simply indicated that the power manager should attempt to start\na new dream.  This state is now tracked in the mSandmanSummoned field.\n\nAdded a new DOZING state which is analoguous to DREAMING.  The normal\nstate transition is now: AWAKE -\u003e DREAMING -\u003e DOZING -\u003e ASLEEP.\nThe PowerManager.goToSleep() method now enters the DOZING state instead\nof immediately going to sleep.\n\nWhile in the doze state, the screen remains on.  However, we actually\ntell the rest of the system that the screen is off.  This is somewhat\nunfortunate but much of the system makes inappropriate assumptions\nabout what it means for the screen to be on or off.  In particular,\nscreen on is usually taken to indicate an interactive state where\nthe user is present but that\u0027s not at all true for dozing (and is\nonly sometimes true while dreaming).  We will probably need to add\nsome more precise externally visible states at some point.\n\nThe DozeHardware interface encapsulates a generic microcontroller\ninterface to allow a doze dream for off-loading rendering or other\nfunctions while dozing.  If the device possesses an MCU HAL for dozing\nthen it is exposed to the DreamService here.\n\nRemoved a number of catch blocks in DreamService that caught Throwable\nand attempted to cause the dream to finish itself.  We actually just\nwant to let the process crash.  Cleanup will happen automatically if\nneeded.  Catching these exceptions results in mysterious undefined\nbehavior and broken dreams.\n\nBug: 12494706\nChange-Id: Ie78336b37dde7250d1ce65b3d367879e3bfb2b8b\n"
    }
  ]
}
