)]}'
{
  "log": [
    {
      "commit": "c0e4aaad1ecd5df2608f10a644f3d8f60056d94c",
      "tree": "f9ffaeedbafd4ba5927b58da5ee0e114127c77a6",
      "parents": [
        "075b2b4ff9a9a96462a3102b54fdcabc6e5daf99"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Nov 14 10:55:50 2014 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Nov 14 11:05:08 2014 -0800"
      },
      "message": "Issue #17551667: Voice interaction service should be disabled...\n\n...by default on Svelte devices\n\nAlso make sure the voice_recognizers feature is not enabled on\nlow-ram devices, with a new facility for platform feature\ndeclarations to say they should be ignored on low ram devices.\n\nChange-Id: I833c04b12e0e566dd682ed20adb0985c677a696f\n"
    },
    {
      "commit": "45c00b5877e908f44853783b42deb437cfd30d94",
      "tree": "a1777be0bddcc8c405bb2a197f6f79020a6469a5",
      "parents": [
        "4fc2ea8402b62001b225bf4e1a335c4cbf3b65ea"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Thu Oct 16 16:17:11 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Wed Nov 12 09:57:27 2014 -0800"
      },
      "message": "Don\u0027t unload the sound model on stopRecognition\n\nThis helps us in majority of the scenarios where the sound model doesn\u0027t\nchange across start/stop calls.\n\nBug: 17954633\nChange-Id: Ibff817bb69bc69d2bb3a2603460fed596688b892\n"
    },
    {
      "commit": "8cf8f71644643601fe8c3e9538fd00412b1ae8b1",
      "tree": "f515c4f47399becbe7a7edd708b737499a6dc8ec",
      "parents": [
        "a2f945e227d8059e3ff9c41676146b057cd7ddbe"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Mon Sep 15 12:51:08 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Mon Sep 15 19:59:09 2014 -0700"
      },
      "message": "Fix issues with multiple languages and multi-users\n\nFor multi-user the issue was looking into the user ID of the current\nprocess instead of the active user. The current process was the system\nprocess and the call to UserManager was returning a user handle that\nwasn\u0027t of any use while trying to map sound models to a user.\n\nFor language, the issue was that we were incorrectly just looking up the\nmodel based on the keyphrase id, however we should have also taken the\nenrolled model\u0027s locale into account.\n\nExplicitly document that for model management the string representation of locales\nis a BCP47 language tag.\n\nRemove debug logging.\n\nBug: 16798166\nBug: 17462570\nBug: 17463511\nChange-Id: Ieffb3e218de63f6e7f40af9705dced481a35b0ad\n"
    },
    {
      "commit": "2475e38c10a02973665752e0b829153a5c493b28",
      "tree": "7d1ff82f2b4542862834886942b786753aa9f707",
      "parents": [
        "9ed0292a650eb52becc0c17e4001767065d325ca"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 09 15:52:25 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 09 17:26:00 2014 -0700"
      },
      "message": "SoundTriggerHelper: handle media server death\n\nRetry to attach sound trigger module when startRecognition() is called.\n\nBug: 17373746.\nChange-Id: I5b2f806b6cab47741d345be1cde73a84f5a62590\n"
    },
    {
      "commit": "d7c0395d26694c594c3e64b16ab647c971aeb422",
      "tree": "14e3e6765760116dc6e95607702e226ff99bd676",
      "parents": [
        "78358b17885cfb99f359f54c11565c0c3a998928"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 29 17:32:04 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 02 10:29:28 2014 -0700"
      },
      "message": "Hide the interaction part of VoiceInteractionService.\n\nAlso the ability to start voice activities is turned off,\nthough for testing purposes it can be turned back on with a system\nproperty.\n\nChange-Id: I867704d32c53beeb851ceea9b45c28bf5c01ef61\n"
    },
    {
      "commit": "1b012d302b56b4adf950035136d1d191a1936d5a",
      "tree": "4b6fc0a3e89f7a2251680e7e13f7211a8dff7ba2",
      "parents": [
        "987eb9734445bd92f6925b596b9b0ece90ad70b8"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 20 10:35:34 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Aug 26 15:54:25 2014 -0700"
      },
      "message": "Add sample profiling option to am.\n\nAlso bundles all profiling options into a class.\n\nBug: 17040932\nChange-Id: I85d675ee1494bdc7308caffdf94145d27c996e9d\n"
    },
    {
      "commit": "efe0f9c7f2bdc10cfd28c186e68676e27b6944a1",
      "tree": "b32b7352c58d5c621c40c9d7da116a109df33aef",
      "parents": [
        "a434963fade86654c46ca3a3538ef0e0150f73d0"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Fri Aug 22 17:45:04 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Fri Aug 22 18:35:49 2014 -0700"
      },
      "message": "Turn off hotword when in power save mode\n\nBug: 15705459\nChange-Id: Ifa8b80223affffdc00da467c2066bc6370c85af1\n"
    },
    {
      "commit": "16ec0808b5c19f8f33cdacb7b2e444eebfae7d21",
      "tree": "90158e9bbb12f8429754226f1eaecd73e1335f31",
      "parents": [
        "82d6d337b389ef088879a5e527d44c75c41c5b44"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 15 18:32:33 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 15 18:34:10 2014 -0700"
      },
      "message": "Make sure we initialize to enable the default voice interaction service.\n\nWe weren\u0027t taking care of the case of an upgrade to L.  The main\nchange here is that the voice interaction service setting now has\nan empty string when the user has explicitly said they don\u0027t want\none, so when it is null we will initialize it to its default.\n\nChange-Id: Icdd30b4f09498f8928cea759a64628bd43bc5d0e\n"
    },
    {
      "commit": "a31413a325747aa91ff8002a0975e1651ad68325",
      "tree": "5d5fc391e66794300586f13654d15be498827849",
      "parents": [
        "2d8964cca7663b32ca339e1bb57eb4830488fb97"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Tue Aug 12 17:20:07 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Wed Aug 13 10:52:17 2014 -0700"
      },
      "message": "Fix delete clause for sound model DB\n\nSince UUIDs contain \u0027-\u0027s they need to be wrapped within quotes\n\nBug: 16985919\nChange-Id: I624a512ca7fc2494a7737b5465c94a9e161dec88\n"
    },
    {
      "commit": "6df952ec2208714d3206c54987eb388aee799be6",
      "tree": "192b0bd79bdda4b8494b05688d6e364907710e16",
      "parents": [
        "1584609f422c338ade65b8b4078b434ba3a81253"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Fri Aug 08 15:28:46 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Mon Aug 11 09:38:38 2014 -0700"
      },
      "message": "Add debugging info to VIS via dump()\n\nChange-Id: I9e8f4536de309256db835b30d94765bfc27d4e80\n"
    },
    {
      "commit": "a351ab96987381ffe7ea29a7cdec1e7fbd1497d5",
      "tree": "8cec8f73970a6b7fa81e6e279080d76d065e5185",
      "parents": [
        "d78e8114988326d557a1405e669b330f63fbf0d3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 08 17:35:50 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Aug 09 13:31:59 2014 -0700"
      },
      "message": "Fix issues 16739817 and 16709247 in voice interaction service.\n\nIssue #16739817 VIS doesn\u0027t start for non-primary user(s)\nIssue #16709247 GSA is not the default voice interaction agent\n\nThese are both fixed by getting rid of the existing code for applying\nthe default voice recognizer, moving it in to the voice interaction\nmanager service, and extending it to also set up the default voice\ninteraction service.\n\nChange-Id: If8d5936c28aebfa7eff77c8d99241c3a2ffdb0a4\n"
    },
    {
      "commit": "6b8556d2e320b631d3741bf064796efddb6e51df",
      "tree": "0117c3495820a01f0b30045d3f6c4f6c07f3018f",
      "parents": [
        "f30fc111a3a65f9c3fb9384c867de1bbfe37b1e5"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Wed Aug 06 19:47:25 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Thu Aug 07 12:10:48 2014 -0700"
      },
      "message": "Dump the state of SoundTriggerHelper for bugreports\n\nChange-Id: I01a17d969fbd22c6bcbb161e3542ca14a3f8c7c8\n"
    },
    {
      "commit": "cb4e81c7fe1ec843d80f7604a688c71086c23685",
      "tree": "c3ea65e45d02993cd7c3af55222c5cda5ec08998",
      "parents": [
        "3da5ba05d601778ea11dd87c1e8c9e9827e2a520"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Tue Aug 05 15:03:46 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Thu Aug 07 11:53:02 2014 -0700"
      },
      "message": "Handle microphone contention/Phone calls while recognition is active\n\nInternally we pause the recognition when:\n - a phone call is active/off-hook/ringing\n - or some other application grabs the microphone\n\nwe auto-resume when the condition that caused us to pause reverses.\n\nBoth these events are notified to the client via callbacks so that they can choose to display on their UI,\nthat the recognition is paused for some reason.\n\nBug: 16515468\nBug: 16740806\nBug: 16514535\nChange-Id: Ib274d68522c8cf37d42402c875b16159957657f0\n"
    },
    {
      "commit": "256e1a62673472d685232d88ad4d067eb82deeac",
      "tree": "3cc4215e2ae5cd94ee63b18b3be3069e93af5036",
      "parents": [
        "a13104fe7d7317f3cf963302597a8db93ec11245"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Tue Aug 05 11:56:58 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Thu Aug 07 10:50:18 2014 -0700"
      },
      "message": "Handle same keyphrase for multiple users\n\nAlso notify the VIS of a change after finishing the change\n\nBug: 16816191\nChange-Id: I6c96595819cd07182c3825c522d9bae559bb6814\n"
    },
    {
      "commit": "d3b8223377b8046280e4c09e728edc600171f941",
      "tree": "88d3e6bb021548e90b415791c3dbddc8870be60c",
      "parents": [
        "2265c8f70088b88b34ee9e315f7ae5519de1cdba"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 30 08:57:39 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 04 16:35:27 2014 -0700"
      },
      "message": "SoundTrigger API update.\n\nAdd sound model update callback.\nAdd native service state change callback.\nAdd vendor UUID in sound model description.\nAdd coarse confidence level in recognition event.\nAdd capture format in recognition event.\n\nBug: 12378680.\n\nChange-Id: Id63437819ec7b9a4a69e1ff6185b747e20cad95e\n"
    },
    {
      "commit": "5e33fb057c20b84418d96574abe861e9d05956eb",
      "tree": "1b5d8bebf88eee7888939c47f1019af8ec500e39",
      "parents": [
        "2c0273e50a3162595e9a54030166f2369b039a5a"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Fri Aug 01 18:09:07 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Fri Aug 01 18:18:08 2014 -0700"
      },
      "message": "Stop recognition when shutting down VIS\n\nBug: 16629417\nChange-Id: I9c98d7e6d487d3eaff604df401c320f8554589f9\n"
    },
    {
      "commit": "2c0273e50a3162595e9a54030166f2369b039a5a",
      "tree": "6075295a33de952b996038ffdf10f22594a1cf4b",
      "parents": [
        "fc0fc0e341f2a2d707d5a8eafd65db34bdffb35c"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Fri Aug 01 11:32:03 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Fri Aug 01 17:46:27 2014 -0700"
      },
      "message": "Add a flag for multiple triggers with same recognition session\n\nAlso annotate the flags with @IntDef to make things clearer and safer\n\nAdd more debug logging\n\nRevert to start/stop being synchronous since telephony and microphone will\nneed to be handled internally.\n\nBug: 16731586\nBug: 16514535\nBug: 16549061\nChange-Id: I83695d52e9547269c95d443e4d921c9238b7401e\n"
    },
    {
      "commit": "299efbe1fbdca7bf2c852b67df3da361930f3ef2",
      "tree": "c0a52838c9986538178db38c573318529d923264",
      "parents": [
        "f62af27846b49dde99f3a665ad83696e37e1833b"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Wed Jul 30 13:40:56 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Thu Jul 31 09:39:47 2014 -0700"
      },
      "message": "Don\u0027t unload sound model in start recognition unless the model changes\n\nThis helps in start -\u003e detected -\u003e start again scenarios\n\nChange-Id: I6d8d55e469e0623b9eb07595df8897ad4942aa11\n"
    },
    {
      "commit": "1ed12ddb8c46193cc4d790b9c7d6a5d61afb3311",
      "tree": "98c42d193596c9c24dc94b8c1df391081160a7d3",
      "parents": [
        "38e2d104d80e092af7d997db025b2a9b47150470"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Tue Jul 29 14:41:50 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Wed Jul 30 11:43:41 2014 -0700"
      },
      "message": "Make startRecognition async\n\n- This is needed for telephony and audio integration which should happen via async callbacks\nthat\u0027ll end up starting/stopping recognition.\n\ne.g. if a startRecognition happens when in a phone call - the onDetectionStarted will get called once the phone\ncall ends.\n\nFor now the transient stoppages due to internal reasons will not be propagated back to the client.\n\nBug: 16514535\nBug: 16515468\nChange-Id: I1b2b8edd28f5c5e67c453f66c23e1a67a626114e\n"
    },
    {
      "commit": "8ef360f34893771ee22a8ec7a1dc9c9aedc4b38c",
      "tree": "c9a8856f89705603de49e4b8fbc118a6e5eb8153",
      "parents": [
        "5d231e134353a7cb07ecc7d6dd1a4ffdcf194bca"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Mon Jul 28 16:40:11 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Tue Jul 29 17:23:40 2014 -0700"
      },
      "message": "Notify VIS of shutdown before switching implementations\n\nThis lets the implementation cleanup before it\u0027s destroyed.\n\nBug: 16629417\nChange-Id: Ia717d461677e9ca8fa66f02c030aacad1597692d\n"
    },
    {
      "commit": "2e14dd46e16432fe264025087b57ce6ec71622a3",
      "tree": "32a10287143f77f5988b1272266f8fa46b1f5643",
      "parents": [
        "57b69dd27e582e951ea223ba970bd7157753769b"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Tue Jul 29 13:37:34 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Tue Jul 29 13:37:34 2014 -0700"
      },
      "message": "Use keyphrase id from the recognition event\n\nBug: 16516658\nChange-Id: I8be773eec39e1c4c57d106e03a443cbfc5c6dc5d\n"
    },
    {
      "commit": "6817337118655d5792e36e954b123e6daa4174a6",
      "tree": "bacd4155507f64d701c3c7a3e4fa70da89d7d658",
      "parents": [
        "94703148bc522b9f3fab9257fd07021e678d43f2"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Mon Jul 28 13:25:30 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Tue Jul 29 11:24:51 2014 -0700"
      },
      "message": "Read the keyphrase ID from the recognition event\n\nBug: 16516658\nChange-Id: Ibeee81c9543aa1091bb075066cfc2269107f13c0\n"
    },
    {
      "commit": "39c12fab49075b715c253c68c84b5c10c3150197",
      "tree": "bcb5cff2b35c50575cb8e4b60ea35e8a635b16e7",
      "parents": [
        "e0b8c378b7b4881396346116a9c1d633d1a4eb9f"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Fri Jul 25 18:37:29 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Mon Jul 28 11:10:32 2014 -0700"
      },
      "message": "Use blob (shared memory) for large data in sound model/recognition event/config\n\nAlso add a missing null check in writeBlob\n\nBug: 16516353\nChange-Id: Ie702f8daae541cab7c2cee6e13d49e7fc84c84e1\n"
    },
    {
      "commit": "452a642430e3f8abfa053e48893dd0edfb12799b",
      "tree": "9d73c6243cdc16415f1e9c00ea4f284252564646",
      "parents": [
        "90d7a3e996ee3a6e33e655341c5d301fbe30cd58"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Fri Jul 25 10:49:34 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Fri Jul 25 17:11:34 2014 -0700"
      },
      "message": "Fix various bugs with model management\n\n- Tie the sound model and keyphrase for simplicity\n  We won\u0027t support multiple keyphrases in a single model out of the box.\n  The db schema will need to be changed by the OEM wishing to add multiple hotwords.\n  This is because we currently have no way to test the flow and make sure that things work well with multiple keyphrases\n  and also the framework only reads the metadata for one keyphrase.\n\n- Make the delete/update operations atomic\n\n- Make the flow of data from Enrollment -\u003e VIMS; the large sound model doesn\u0027t cross the process boundary any other time.\n  This is achieved by passing they key around, instead of the model themselves.\n\n- Add a specific delete operation in DatabaseHelper rather than relying on emptying the keyphrases to delete.\n\nBug: 16555803\nBug: 16516353\nChange-Id: I1e0cce137517502a669e431ca7e9f9f755598328\n"
    },
    {
      "commit": "f63bc523eadbe01ce0a5ad52868a5dccb3d5f6dd",
      "tree": "b2b0ca650b4c3f34e6af4c43ca6a0dfd5c93ff94",
      "parents": [
        "10e62cb2f22566741a544be7aef2157409bfc6d4"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Tue Jul 22 09:49:49 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Tue Jul 22 17:11:52 2014 -0700"
      },
      "message": "Make hotword availability a callback\n\nThis helps us make the list sound models operation an async one, it also helps us\nwith the case where a detector is invalidated, so the client doesn\u0027t have to keep checking the\nstate.\n\nSynchronize DatabaseHelper methods on its instance so that other VoiceInteractionManagerService\ncalls aren\u0027t blocked on db writes/reads.\nIt\u0027s still possible for the list operation to be blocked on update and vice-versa\n\nChange-Id: Ib8ec4ac5056b62d443038560ce31d0641b4627b0\n"
    },
    {
      "commit": "6daae9622672e0b38fc2efed29f68061d749cacc",
      "tree": "94943fab0e4ab27952fffb07141456cfec65fbed",
      "parents": [
        "70441467f4dc232cd8e6142f0afc117787dc979b"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Mon Jul 21 10:31:34 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Tue Jul 22 09:16:18 2014 -0700"
      },
      "message": "AlwaysOnHotwordDetector needs to reflect enrollment changes\n\nAdd a callback for when any sound model change happens. This helps the VIS\nto re-check the availability and either enroll the user, or start/stop recognition.\n\nAlso shut down any active recognition when VIS dies, or a different hotword detector instance is obtained from VIS.\n\nChange-Id: I03f94e78c6ee307afe822a84aebc7e74c64de7b4\n"
    },
    {
      "commit": "110f569b47bc21fb38ec25b6110ee302ce137e06",
      "tree": "b596841dbf21aaf5d23e1d905cf2914f5f6d53e4",
      "parents": [
        "8ca1fdc10b9afb831636ce00e48b9692476413c5"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Sun Jul 20 12:22:56 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Sun Jul 20 16:53:09 2014 -0700"
      },
      "message": "Fix synchronization issues in AlwaysOnHotwordDetector\n\n- Remove unnecessary recognition status from AlwaysOnHotwordDetector\n\n- Remove unnecessary recognition started callback from IRecognitionStatusCallback\n\n- Fix a bug around the fact that we weren\u0027t picking up enrollment at runtime because\nwe were storing the availability at instantiation time.\n\n- Handle 0-length arrays in SoundTrigger classes while parceling/unparceling\n\n- Fix issue in SoundTrigger helper where we were not comparing binders for start/stop calls\n\n- Unload the previous model when starting a new recognition\n\n- Add more debug logging\n\nChange-Id: Icc56d7f3dd1ffa49a8cfeea49080e3ab4d342c32\n"
    },
    {
      "commit": "055897208d659e9734a82def88be4a806ff55448",
      "tree": "4540186364f0a3fc3a3675119846448215696f68",
      "parents": [
        "6eb262c3515c927df19340b3eee8c74bc9478d16"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Thu Jul 17 16:21:54 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Sun Jul 20 11:22:55 2014 -0700"
      },
      "message": "Move sound trigger calls to VoiceInteractionManagerService\n\n- This ensures that any data being loaded on the DSP comes from the framework\n\nChange-Id: Ie15f0994850ba8f298ca07c49fe0b89e066d9e2b\n"
    },
    {
      "commit": "7444c906faef1f7a9a6e6f7a443ba156f1e856be",
      "tree": "d422b62cbc7a5aa67a6edeb1c3d1bc3505f1f9bb",
      "parents": [
        "ca58ddf7c82dd0857de0c3d49d7eb87a842ee4ce"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Wed Jul 16 23:55:41 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Thu Jul 17 18:44:12 2014 -0700"
      },
      "message": "Test hotword flow\n\n- Also fix a few StrictMode violations in DatabaseHelper\n\nChange-Id: I93f27407dae34cc0dca5e9f891d4ca718d6010a5\n"
    },
    {
      "commit": "f8cf71d753b86895f987f682c80491aa2967e0c2",
      "tree": "349336f0d94ba39e461521b2376ab5dfb5585a2d",
      "parents": [
        "b3325cbb267da0e663742fec172d7ed7ffe2aa1f"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Wed Jul 16 22:53:19 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Thu Jul 17 11:01:25 2014 -0700"
      },
      "message": "Support model deletion\n\nthe updateKeyphrase call is also used to clear out a sound model currently,\nthis happens when the sound model passed in has no keyphrases.\n\nWe can revisit if we need another deleteSoundModel method\n\n- Also fix an issue with the way we were writing keyphrase to the DB\n  and when updating keyphrase, we actually addOrUpdate\n\nChange-Id: Ib7250c2fdafef6bc40387912a79366c334d73292\n"
    },
    {
      "commit": "fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7",
      "tree": "d1ff654f57e10bcd3b0a26690113aef7f1643eb4",
      "parents": [
        "2883ba69751de69811a38f086ecbe4c2032ca87d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 16 17:31:10 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 16 22:50:31 2014 -0700"
      },
      "message": "Implement issue #16330060: Inform ActivityManager about WebView...\n\n...state changes.\n\nAdd a new API to tell the activity manager about a new dependency\none process has on another package.  Start using it already for\nwhen apps is Context.createPackageContext() to load code from another\napp.\n\nAlso do some work on getting the monitoring of proc/uid states\nin shape so it can be used by unundled code, along with an\nAppImportanceMonitor class for doing so.\n\nSome small fixes and additions to VoiceInteractionService.\n\nImprove handling of unaccounted/overcounted battery use so that\nthey aren\u0027t shown to the user unless they are significant.\n\nChange-Id: I22dd79a73f4e70103d3f8964494aebc8a31f971c\n"
    },
    {
      "commit": "2883ba69751de69811a38f086ecbe4c2032ca87d",
      "tree": "0c1aa448e38f4c3e7b1f277111a131298a8e0356",
      "parents": [
        "e6cd2476aa9d07df0de0a0081ab66d8401a7e228"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Wed Jul 16 21:02:08 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Wed Jul 16 22:10:45 2014 -0700"
      },
      "message": "Plumb the database code to read/update sound models\n\nChange-Id: I135131b042481462f905bdb69ea8544e2561d177\n"
    },
    {
      "commit": "8ecaf5f5cfd18e0436db1a27ccf46a063e9aacd7",
      "tree": "b786dc7534b41760f8330e9cecd84a6e8e65c3d5",
      "parents": [
        "d1f113d0f0ce5099f8efba40a88398f7945bb5e0"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Thu Jul 10 19:38:18 2014 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Tue Jul 15 18:36:09 2014 -0700"
      },
      "message": "Hook in startRecogniton call\n\nAdd required info to the sound model database: users \u0026 recognition modes\n\nChange-Id: I6e12cbc6342a2767c0e3d8328c0a3be899ac9952\n"
    },
    {
      "commit": "d7018200312e4e4dc3f67cf33dc90bf7ce585844",
      "tree": "4479f56efb160bc525120e1ef19f724eccf47e8c",
      "parents": [
        "3d4fe363b25293577faae3fddf85e6f73f76b0cd"
      ],
      "author": {
        "name": "Sandeep",
        "email": "sansid@google.com",
        "time": "Thu Jul 10 15:15:39 2014 -0700"
      },
      "committer": {
        "name": "Sandeep",
        "email": "sansid@google.com",
        "time": "Thu Jul 10 18:32:37 2014 -0700"
      },
      "message": "Always on hotword changes\n\nAdd model management API skeleton to VoiceInteractionManagerService\nAdd an \"interactor\" for all always-on APIs\n\n- The VoiceInteractionService will get an interactor for the given\n  keyphrase and locale.\n- It can then check the availability and call methods to start and\n  stop recognition on this interactor.\n\n- Add a common class to deal with SoundTrigger APIs\n\n- Cleanup the keyphrase representation:\n  We now have separate representations for the keyphrase metadata and\n  a keyphrase being used for recognition.\n  This\u0027ll also help us to handle custom keyphrases in the\n  future easily.\n  This also ensures that for use within the framework,\n  we rely on the ID of the KeyphraseInfo rather than comparing the\n  text everytime.\n\nAdd a callback for the AlwaysOnHotwordDetector\n\nThis callback should be passed in by the VoiceInteractionService and is used to notify it\nof recognition events.\n\nChange-Id: I26252298773024f53a10cdd2af4404a4e6d74aae\n"
    },
    {
      "commit": "013f66b92db609fceeff9c8171daca13d057cc95",
      "tree": "df57f3906a6ba6f9bbf42ed93441d3af03103eb9",
      "parents": [
        "a3bf3e5c849bfb3bf0a74dcc06ef032355183c2e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 06 16:35:00 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 08 11:48:44 2014 -0700"
      },
      "message": "SoundTrigger: update API\n\nclass Keyphrase: replaced number of users by list of user IDs.\nclass RecognitionEvent: added capture preamble duration.\nclass KeyphraseRecognitionEvent: add keyphrase ID and explicit list of\nuser ID/confidence level pairs.\nstartRecognition(): takes a RecognitionConfig specifying the list of\nkeyphrases to listen to as well as for each keyphrase the recognition mode,\nusers and min confidence levels for each user.\n\nBug: 12378680.\nChange-Id: I57036cc83b5d9e90512b8bb3f951af3a4a74c0ce\n"
    },
    {
      "commit": "d4233c68fc17f0909e9e36494db85a634f8e2665",
      "tree": "8a5db8c62e5dec2609e106ffbf091e8aa65f609c",
      "parents": [
        "9eb38a6ffa8c4f113a274ce6b390e5d138018a25"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Thu Jun 12 18:31:19 2014 -0700"
      },
      "committer": {
        "name": "Sandeep",
        "email": "sansid@google.com",
        "time": "Tue Jul 08 09:36:51 2014 -0700"
      },
      "message": "Initial code for listing/storing sound models\n\n- We use a DB to store and persist the sound models.\n- This\u0027ll be used by SoundTriggerModelManager, a service that lists,\n  deletes and registers new models. This\u0027ll be used by the enrollment\n  client to enroll and unenroll users.\n\n- This needs the unique identifiers for sound model \u0026 keyphrases to be\n  present in the respective data structures\n\nThis is very early stage so please point out any concerns.\n\nChange-Id: I82962895bf326167458f20e6ba995295551de025\n"
    },
    {
      "commit": "6ea0d0a2592395b8980c24304733daec628e947e",
      "tree": "61cb9e2441bff9364ff2e83d8ac432709c7bbe99",
      "parents": [
        "3c2b7fa8c584c5ed56f1bd6ad53f2e87f0a6eb44"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 02 16:23:21 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jul 07 11:28:29 2014 -0700"
      },
      "message": "Fix cleanup of voice sessions.\n\nThey would leave active voice activities lingering around.\n\nChange-Id: I5b6716ab303636ebdf2f13c3172552a73dae3bb1\n"
    },
    {
      "commit": "e30e02f5d9a9141c9ee70c712d4f9d52c88ea969",
      "tree": "590f001931e5d466298f917f2d75f0b373de3154",
      "parents": [
        "bbd8e6ffc600e078984cb68acf51c660c5c9fc81"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 27 18:24:45 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 28 17:16:51 2014 -0700"
      },
      "message": "Add system layer for voice interaction services.\n\nNew window layer that voice interaction service windows\ngo in to.  Includes a new voice-specific content rectangle\nthat voice activities are placed in to.\n\nAdd specific animations for this layer, sliding down from\nthe top (though this can be customized by the voice interaction\nservice).\n\nAlso add the concept of activities running for voice interaction\nservices for purposes of adjusting the animation used for them,\nagain sliding from the top, but not (yet?) customizable by the\nvoice interaction service.\n\nChange-Id: Ic9e0e8c843c2e2972d6abb4087dce0019326155d\n"
    },
    {
      "commit": "c03c9167c2d9a1e22fb2b176b00a0524177fb037",
      "tree": "bc8045725f3384dff1c53a508041fa63f78e5ce8",
      "parents": [
        "6b003c9e3c0d3e5e31d9578e6d15facc6553e45e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 02 10:45:59 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 05 11:18:08 2014 -0700"
      },
      "message": "Further work on voice interaction services.\n\nThis makes VoiceInteractionSession a more first-class\nconcept.  Now the flow is that a VoiceInteractionService\ncalls startSession() when it wants to begin a session.\nThis will result in a new VoiceInteractionSession via the\nVoiceInteractionSessionService containing it, and the\nsession at that point an decide what to do.  It can now\nshow UI, and it is what has access to the startVoiceActivity\nAPI.\n\nChange-Id: Ie2b85b3020ef1206d3f44b335b128d064e8f9935\n"
    },
    {
      "commit": "18f0d357f9693fe787a3e3777d8fdf01357a6e3f",
      "tree": "87ffa17a98fa81355a37e25b2c7fc649ffc4e9be",
      "parents": [
        "01c70711d5e4f1c3405bcd169be70605e92166f2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 25 17:06:18 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 28 10:54:15 2014 -0700"
      },
      "message": "Rework some of the voice interaction APIs.\n\nOn the app side, requests are now composed by subclassing\nfrom various types of Request objects.\n\nOn the service side, starting a voice interaction session\ninvolves starting another service that will then manage the\nsession.  This leads the service design much more to what\nwe want, where the long-running main service is very tiny\nand all the heavy-weight transient session work is elsewhere\nin another process.\n\nChange-Id: I46c074c6fe27b6c1cf2583c6d216aed1de2f1143\n"
    },
    {
      "commit": "91097de49b0f683b00e26a75dbc0ac6082344137",
      "tree": "82c3185634a71233ce2e81a3645b07b1ba55f412",
      "parents": [
        "23af77a3cd1febc740d885ff03ead09837df269c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 04 18:02:06 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 24 17:48:58 2014 -0700"
      },
      "message": "Initial implementation of new voice interaction API.\n\nThis gives a basic working implementation of a persist\nrunning service that can start a voice interaction when\nit wants, with the target activity(s) able to go through\nthe protocol to interact with it.  It may even work when\nthe screen is off by putting the activity manager in the\ncorrect state to act like the screen is on.\n\nIncludes a sample app that is a voice interation service\nand also has an activity it can launch.\n\nNow that I have this initial implementation, I think I\nwant to rework some aspects of the API.\n\nChange-Id: I7646d0af8fb4ac768c63a18fe3de43f8091f60e9\n"
    }
  ]
}
