)]}'
{
  "log": [
    {
      "commit": "15ab2b45e7f9f2b6ea92f4dd7e8a5768630dbd80",
      "tree": "fa866f14f2867f438abea9d95bf97758593b7f39",
      "parents": [
        "cf45224a81272d783314a77fd8671d711f4c6a68"
      ],
      "author": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Sun Apr 10 20:15:33 2016 -0700"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Sun Apr 10 21:37:31 2016 -0700"
      },
      "message": "Updates to sound trigger test app.\n\nNow supports loading model information from .properties files inside the\napp\u0027s data directory. This lets you prepare models for your actual\ndevice, rather than just fake data. If no .properties files are present,\nfalls back to the default fake three models.\n\nAlso adds support for playing some trigger audio, so you can use the\nsame device to (hopefully) have a trigger be detected.\n\nChange-Id: I003849eb11d4995534d4c070838810d4519991f8\n"
    },
    {
      "commit": "73db9c2eb2f3f07012f0e14486d26a9980958c08",
      "tree": "9339f1a1360c4136f7c80d84007834514df91501",
      "parents": [
        "1f6bdbca6955ac195807fd82b325bd8010ea6141"
      ],
      "author": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Mon Mar 28 13:58:07 2016 -0700"
      },
      "committer": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Mon Mar 28 13:58:07 2016 -0700"
      },
      "message": "Fix permission string typo for test app.\n\nBug: 27875640\nChange-Id: I2052e40d86ffcfbbcdef15ab3bec68ce1bdfa736\n"
    },
    {
      "commit": "0aa05d738822f435ceb4686f156d0182a1b01d1e",
      "tree": "41d90e3ae3c51a4f4deeed9f90c19cc8a24dec71",
      "parents": [
        "3973b1a75dd8420d51a2cf0dbba0eea174a7dc9e"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Feb 01 17:47:06 2016 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Mar 04 12:21:30 2016 -0800"
      },
      "message": "Turn down the logging a little bit.\n\nChange-Id: I44c51d5f8248df1f8cca19da802ee891afe78af7\n"
    },
    {
      "commit": "f47f173b06e2972bb376da8ff11db3a83c21d10b",
      "tree": "0112c168702444476bf2324a0dc5a09e66af5b57",
      "parents": [
        "a572e4a87b361398a8a8b4ce485fe9226472c81f"
      ],
      "author": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Thu Feb 18 16:16:12 2016 -0800"
      },
      "committer": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Wed Feb 24 12:57:01 2016 -0800"
      },
      "message": "Fix AlwaysOnHotwordDetector recognition event bug.\n\nParcelables don\u0027t work well with inheritance. So changed the\nIRecognitionStatusCallback to have onKeyphraseDetected() and\nonGenericSoundTriggerDetected() for those respective events.\n\nMade corresponding changes to AlwaysOnHotwordDetector and SoundTriggerDetector.\n\nBug: 27250528\nChange-Id: Ic08a431e7cc4248c688b05c865348170246de576\n"
    },
    {
      "commit": "2d1de78a4c8fc224329a9622c9326e42a42ddadd",
      "tree": "6c5bc935e1007db0de7ed99ba877fb311e0fe48f",
      "parents": [
        "9a08f827a4f8ac333402e22e5d45228abe8d98fa"
      ],
      "author": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Sun Feb 21 18:10:28 2016 -0800"
      },
      "committer": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Mon Feb 22 15:19:44 2016 -0800"
      },
      "message": "Unload logic for generic and keyphrase sound models.\n\n When delete is called, now the STH unloads the corresponding models.\n\nFix bug with keyphrase where a delete call didn\u0027t unload (or stop)\nthe keyphrase model.\n\nBug: 27279380\nChange-Id: Ia34f713d2aecef4102c0f0ccc57b8d2e5febe4bb\n"
    },
    {
      "commit": "933da8150c4a80b94684c97cd6813e5018a73a8d",
      "tree": "83ceb5176e3ec8ca6ded45e555486b9a6ed3e6a4",
      "parents": [
        "24ffe236b1ca89b6088a5488c591ea836ee59e1c"
      ],
      "author": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Thu Feb 18 15:31:54 2016 -0800"
      },
      "committer": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Fri Feb 19 15:06:27 2016 -0800"
      },
      "message": "Fix minor bugs:\n\n - Fix issue when multiple starts cause multiple spurious loads to be sent to\n   the native layer.\n - Fix scrolling issue in the native app.\n\nBug: 27222043\nChange-Id: Iddf36a8b68637f478dc23b001ecbde352db3a5f0\n"
    },
    {
      "commit": "3fff7f5634ca788c1c84b6f1b316819ffd4c7cb2",
      "tree": "20eda00acc17334e7efc29a22dd552b6900eee05",
      "parents": [
        "93dfc03ba632590e30604dde31b78628df962eff"
      ],
      "author": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Tue Feb 09 12:15:19 2016 -0800"
      },
      "committer": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Wed Feb 17 14:24:03 2016 -0800"
      },
      "message": "SoundTriggerHelper changes for GenericSoundModels.\n\n - Refactoring SoundTriggerHelper to handle generic sound models.\n     - Ability to store multiple models, callback and state information.\n     - Separate out initialization to be done per voice model, per any model\n     and per generic model.\n - Minor change to the API exposed -- removing the Handler from the\n   createSoundTriggerDetector call.\n - Added callback processing for onRecognitionEvent().\n - Added logic for stopAll().\n - Changes to the SoundTriggerTestApp to start/stop recognition.\n     - Multiple models (3).\n     - Ability to start/stop/load/unload individual models.\n\nBug: 22860713\nBug: 27222043\nChange-Id: Ie5d811babb956bead653fb560a43f1e549ed11bd\n"
    },
    {
      "commit": "c722ec4105f7a4733a22fb9004e784347ee36663",
      "tree": "2461f5dc1a138a73ac84d41c5369362177ff379d",
      "parents": [
        "a0d65dc0db93c63e1a1dd19ca0bfff6f1fef14a9"
      ],
      "author": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Wed Jan 27 13:29:12 2016 -0800"
      },
      "committer": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Wed Jan 27 13:37:27 2016 -0800"
      },
      "message": "Fix SoundTriggerModel uses to GenericSoundModel.\n\nChange-Id: I30308b39536864d7b9640367861730e3b1b12129\n"
    },
    {
      "commit": "a772e5fc062c8de48cb9c1d61755110f6b2e189b",
      "tree": "3ee387dd521a8d8d6c3bbc8841542ca07a5078aa",
      "parents": [
        "5c461fc36d79d13b037ef928beb38fdb64e94057"
      ],
      "author": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Mon Jan 25 10:33:11 2016 -0800"
      },
      "committer": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Wed Jan 27 12:49:20 2016 -0800"
      },
      "message": "SoundTrigger API improvements.\n\nThis CL implements the SoundTrigger API improvements as given in b/22860713. Only the java-level\nparts are implemented in this CL.\n\nKey changes include:\n\n* Addition of a SoundTriggerManager/SoundTriggerDetector system API to manage\n  the sound-trigger based sound models.\n* Addition of a SoundTriggerService service that manages all sound models\n  including voice (keyphrase) and sound-trigger based models.\n* Includes logic to write sound-trigger based models to the database.\n* VoiceInteractionManager service now uses SoundTriggerService instead of\n  SoundTriggerHelper.\n\nBug: 22860713\nChange-Id: I7b5c0ed80702527c4460372efeb5e542d3693a69\n"
    }
  ]
}
