)]}'
{
  "log": [
    {
      "commit": "b36eb542a9157c488bcc7dc7eb5a65b7b7288155",
      "tree": "251a3793d3b05859b8298b08f43135ed3592cd50",
      "parents": [
        "9cb0b520114c1a166f4972b53cb2bfac7d1a1b78"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jan 15 15:47:47 2018 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jan 15 15:47:47 2018 +0000"
      },
      "message": "Replace legacy-test with android.test.base in bp files\n\nThe legacy-test target is deprecated and will be replaced by\nandroid.test.base. This replaces a few usages of the legacy-test target\nin Android.bp files with android.test.base.\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: I3575f638114fe2a3b703e67837496346bde24472\n"
    },
    {
      "commit": "a88eb29f9e0bd363fb3f1e02f379a54324a3e5ec",
      "tree": "e2a0a2a13fd60ead3bea8becacaea94eeba4b050",
      "parents": [
        "22bd015cbacfd67b0901733740a01ac4674d8f92"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jan 12 16:08:35 2018 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Sat Jan 13 09:37:37 2018 +0000"
      },
      "message": "Remove junit classes from legacy-android-test\n\nA mistake during the conversion of the legacy-android-test target from\nAndroid.mk to Android.bp caused some junit classes to be accidentally\nincluded in the legacy-android-test target. That caused some warnings\nabout duplicate classes to be output during the build.\n\nThe junit classes are being included as part of the static library\nandroid.test.runner. This fixes that by adding a new\nandroid.test.runner-minus-junit which excludes the junit classes\nand then using that instead.\n\nTest: make checkbuild\nChange-Id: Icd00b38c64d3416a55c1055f9716ddb78ec278f8\n"
    },
    {
      "commit": "e95a895ef416822bbdefa2302ba6ba362a352f9f",
      "tree": "4de7a567af628408e42388c7b41921e72af8cc1d",
      "parents": [
        "21418277009ee848e095b35903d7fde213d3d5fe"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Nov 16 15:53:09 2017 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jan 12 16:31:08 2018 +0000"
      },
      "message": "Added new android.test.base targets\n\nRenames ...-legacy-test-... targets related to stubs generation to\n...-android-test-base-....\n\n(cherry picked from commit 5c99382a1995723637814221cd5432c458c622ad)\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: I40b39c5250b7d990a903052c0b1ebd694242b5b3\nMerged-Id: I54204733612d6d3f14dd8023973e993a5ddab51d\n"
    },
    {
      "commit": "21418277009ee848e095b35903d7fde213d3d5fe",
      "tree": "d9ec3bcd5ffcaa23e26fd177669e249d837999d1",
      "parents": [
        "f0561142f3b7ddd85947d7ee268d5b98a39489b9"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Nov 16 15:47:05 2017 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jan 12 15:52:39 2018 +0000"
      },
      "message": "Move legacy-test to test-base\n\nMake it consistent with the test-mock and test-runner directories.\nAlso renames the files in api/ subdirectory.\n\n(cherry picked from commit f779efd62cd579f67bd3b387d59fda11ee0cbe90)\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: Ied3621e6201d8717223fe1ccd4ea77d458126b25\nMerged-In: If4f99a65fcca416ede5b3e63481398f0b451bcb7\n"
    },
    {
      "commit": "fc7ba9e61f0991c74a161502da4432da45ce384e",
      "tree": "3752cad98fb5958c90e3a330aa802226a37161b0",
      "parents": [
        "c16130898432e5622e60fd7aeb05a9b7db8f9550"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Dec 07 13:11:06 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 12 23:24:40 2017 +0000"
      },
      "message": "Convert legacy-test, test-runner, and test-mock to Android.bp\n\nSee build/soong/README.md for more information.\n\nTest: m checkbuild\nChange-Id: I110f752d2fa94c44581f20d4f308d9d429da0517\nMerged-In: I110f752d2fa94c44581f20d4f308d9d429da0517\n(cherry-picked from commit 2b7d71c7f8028741c2200bfeba8913b7f4f55cde)\n"
    },
    {
      "commit": "69516f4df7129b39dfa05654b9e5163442438c72",
      "tree": "3e21c3ef15385e32487c3750cdc43af95c2b21f6",
      "parents": [
        "eb652a47a180092b397ec40c718dfc13935f7fb6"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Nov 15 11:39:14 2017 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 12 23:23:31 2017 +0000"
      },
      "message": "Separate android.test.mock from test-runner source\n\nExtracts the source for the android.test.mock library from the\nframeworks/base/test-runner directory into its own\nframeworks/base/test-mock directory. They are already treated separately\nat runtime and compile time so this just makes the separation complete.\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: I20e5b06ba79677e76117c82e9f9e2ecd15e5fed6\nMerged-In: I20e5b06ba79677e76117c82e9f9e2ecd15e5fed6\n(cherry picked from commit e254526f0fe5d22681555bd4a00b7ee96fee1dc1)\n"
    },
    {
      "commit": "2337aec921d051da0d6b506e5fbb564ea2e49911",
      "tree": "45312f63da4f26b64dc1e432fa31d74f6745c93e",
      "parents": [
        "bc4f48b21d4f78a81a78a120a59e523369e41e7b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Dec 06 21:12:23 2017 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Dec 07 00:22:25 2017 -0700"
      },
      "message": "Deeper sanity checking of emitted types.\n\nWhen emitting a method or field, verify that we\u0027re able to reference\nall mentioned types.  This ensures that we don\u0027t accidentally\nreference undefined classes/interfaces.\n\nTest: manual inspection of API files\nBug: 69791141\nChange-Id: I84e0c87fe83daa118661f61dbdf17b58ea5282d4\nMerged-In: I84e0c87fe83daa118661f61dbdf17b58ea5282d4\n"
    },
    {
      "commit": "bc4f48b21d4f78a81a78a120a59e523369e41e7b",
      "tree": "2a4d62b613e1c08543eb31aa422c5871045da2f5",
      "parents": [
        "983df8cc6cd450c6e30881aa6a1b429ebe09d383"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Dec 06 21:02:11 2017 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Dec 06 21:56:12 2017 -0700"
      },
      "message": "Emit all APIs using Predicates.\n\nGenerate APIs using updated doclava.\n\nTest: manual inspection of API text files\nBug: 69505783\nChange-Id: I2efd22998a64ebb57588b073c4a591242f4aef91\nMerged-In: I2efd22998a64ebb57588b073c4a591242f4aef91\n"
    },
    {
      "commit": "b882daa10537958c352ced5eba15c25e47fde6a4",
      "tree": "ad64cddd710ae75ba6895425a096a2284f32c640",
      "parents": [
        "93dac12f10c562dbda2483f1ac50a21b28f6e44c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 05 22:59:27 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 06 15:29:12 2017 +0000"
      },
      "message": "Fix intermittent build failures with droiddoc generated sources\n\nJack builds fail very rarely with missing droiddoc generated\nsource files.  This happens because jack builds have an extra\nrule that does a quick check of the sources and touches a\njack.check.timestamp file.  The manual dependencies for the\ngenerated sources didn\u0027t cover this case.  If the sources are\npartially generated when the jack.check.timestamp rule runs,\nthe rule can see partial sources and fail.  The same problem\nmight also happen for javac builds after\nhttps://android-review.googlesource.com/c/platform/build/+/404743\nseparated the source list generation rule out of the\n$(full_classes_jar) rule.\n\nUse LOCAL_ADDITIONAL_DEPENDENCIES instead, which covers these\ncases and will be updated to cover future changes.\n\nBug: 65255877\nTest: m -j ANDROID_COMPILE_WITH_JACK\u003dtrue out/target/common/obj/JAVA_LIBRARIES/android.test.runner.stubs_intermediates/jack.check.timestamp\n      make sure sources are generated\n\nChange-Id: I4466b3128eb0bba6447c24abf921a6655a3d451f\nMerged-In: I4466b3128eb0bba6447c24abf921a6655a3d451f\n(cherry picked from commit 85ab406eb2abd2e98fa9a67384223592692c08a9)\n"
    },
    {
      "commit": "ef86310c44dea7c3994fd91a93dba82720e9cad8",
      "tree": "32282a2fcd667573a139c2243995373b3b109cf4",
      "parents": [
        "003bd7e3ec71284b46a706c2ac9e298b3ffea732"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Aug 11 10:42:14 2017 -0700"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Aug 11 10:42:14 2017 -0700"
      },
      "message": "@hide new API\n\nChange-Id: Ic9cf7ecd80dd99eb8bcfc9810f4a9fddfe8f8fe4\nFixes: 64568898\nTest: None. No code change.\n"
    },
    {
      "commit": "9da8b8a7fc8c68c17e1bf8cce24e2f73abe5138e",
      "tree": "f58e436de30b56b87e5e3f5a378b35c16ec7dfbf",
      "parents": [
        "340e7d257362fddb0fad0450b88556745381ce4b"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Tue Jul 25 15:38:39 2017 -0700"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Mon Jul 31 11:29:37 2017 -0700"
      },
      "message": "Add new API to retrieve app names in a batch\n\nChange-Id: I57e5c132bc58a32d70007a7a105775b526ff7bb9\nFixes: 62805090\nTest: cts-tradefed run commandAndExit cts-dev -m CtsContentTestCases -t android.content.pm.cts.PackageManagerTest#testGetNamesForUids_null\nTest: cts-tradefed run commandAndExit cts-dev -m CtsContentTestCases -t android.content.pm.cts.PackageManagerTest#testGetNamesForUids_empty\nTest: cts-tradefed run commandAndExit cts-dev -m CtsContentTestCases -t android.content.pm.cts.PackageManagerTest#testGetNamesForUids_valid\n"
    },
    {
      "commit": "855d702cb78f81abbf2a541f01afeacf280d5621",
      "tree": "0091fe94a6818ae7dffd4d6d01921cd5a651a4bf",
      "parents": [
        "07001e8313f56174734e216360ead3c7dce8d982"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jul 10 15:16:07 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jul 17 15:25:04 2017 +0100"
      },
      "message": "Separate android.test.mock classes from android.test.runner\n\nThe android.test.runner library contained classes in the\nandroid.test.mock. Those classes have been extracted into a separate\nandroid.test.mock library but are still part of the android.test.runner\nlibrary. This change removes them from the android.test.runner library.\n\nThe PackageParser change ensures that applications which specify\n\u003cuses-library android:name\u003d\"android.test.runner\"/\u003e still see the same\nset of classes at runtime as they did before this change.\n\nThe logic for updating the Package to maintain backwards compatibility\nwas extracted into its own class for a number of reasons:\n* PackageParser is already huge.\n* It is easier to test in separate class.\n* It reduces potential for conflicts.\n\nBug: 30188076\nTest: cts/tests/signature/runSignatureTests.sh CtsAndroidTestRunnerCurrentApiSignatureTestCases\nChange-Id: I19042b3f9ffff8bf0f8437db7bb8341c703e4244\n\nRemove android.test.mock classes from android.test.runner\n\nBug: 30188076\nTest: cts/tests/signature/runSignatureTests.sh CtsAndroidTestRunnerCurrentApiSignatureTestCases\nChange-Id: I8ddbdb0bda7bef8858202bc085881af14d7f0c92\n"
    },
    {
      "commit": "8eaf94be5252779f89ebb6226cfbcfa5683244a1",
      "tree": "f710b0bfedd712345153b41c24cb5d1922b271b7",
      "parents": [
        "3594b9f4fda1e83c48aba8ace4c688d5c0ea21c6"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jul 05 09:51:25 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jul 05 10:09:52 2017 +0100"
      },
      "message": "Add repackaged legacy-test and android.test.runner\n\nThe CtsSignatureTestCases test verifies that the API described in the\napi/current.txt file is actually available at runtime. The test class,\nSignatureTest, requires junit and android.test classes, some from\nlegacy-test, some from android.test.runner which makes it impossible\n(without classpath scanning) for it to verify that those classes are\naccessible at runtime when they should be and inaccessible when they\nshould not be which is needed for the work to remove JUnit from the\nAndroid API.\n\nThis change uses jarjar to repackage the junit and android.test classes\ninto repackaged.junit and repackaged.android.test packages in the\nrepackaged-legacy-test and repackaged.android.test.runner modules\nrespectively. A follow on change will switch SignatureTest over to\nusing the repackaged classes thus allowing it to work even when junit\nand android.test classes are not visible.\n\nTested by making the modules and manually verifying that they contain\nthe classes in the repackaged package.\n\nBug: 35192974\nBug: 30188076\nTest: see above\nChange-Id: If0355a0d50b7540f416d464fdf7ffae0e4766b1c\n"
    },
    {
      "commit": "09c29c1324b96e5404400947da7eeb9f0976353a",
      "tree": "f7a0f65ed1d5106f324b9168a7a70b0e10dfddef",
      "parents": [
        "28e703a05aecaedd167f9cdb6acbb1d7e78957c6"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 29 10:26:30 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 29 10:32:44 2017 +0100"
      },
      "message": "Update android.test.runner API\n\nBug 62675475 changed DocLava to add some missing methods to the API\ndefinition file. This updates the API definition for the\nandroid.test.runner API.\n\nThe reason this was not found when it was uploaded is because there is a\ndiscrepancy between the checkapi target and the update-api. The checkapi\ntarget will not detect that the update-api needs to make changes. This\nissue has been reported.\n\nBug: 30188076\nTest: make update-api \u0026\u0026 make checkapi\nChange-Id: I598774d3239d58eb5c58ff78e24e8ca84078e64a\n"
    },
    {
      "commit": "bacad4088dafc37553f8ceb0a1b11711b18c6733",
      "tree": "06032c14bd9dfb89f50b00ea45cec7f8f62ae46b",
      "parents": [
        "e70848b8a915d2c1042932f246d790f508e98f74"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 28 11:57:59 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 28 12:55:31 2017 +0100"
      },
      "message": "Stubs/api check for legacy-test and android.test.runner\n\nAdds stub generation for legacy-test classes and android.test.runner\nclasses. Changes name of android.test.mock.sdk to\nandroid.test.mock.stubs for consistency and clarity, adds new\ntemporary android.test.mock.sdk target to prevent build breakage.\n\nAdds api check and update targets for legacy.test.stubs,\nandroid.test.runner.stubs and android.test.mock.stubs to prevent\naccidental changes to the API.\n\nBug: 30188076\nTest: make checkapi and make update-api\nChange-Id: I40cc7b967f1ab1c7e148407d6965526550ee2f9b\n"
    },
    {
      "commit": "2d6ef698950e81567eb340d91e07b2befdf9d19a",
      "tree": "93449db8ad7a627ef96dc121e4421c8e938b9626",
      "parents": [
        "7b02a2f41a613d8f49ea1a2fdbce4e73c167dfa4",
        "06620ee22dca4af6646a2d0f6f25b2ecd755d9fd"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 27 11:09:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 27 11:09:09 2017 +0000"
      },
      "message": "Merge \"Clean up ClassPathPackageInfoSource\" am: 8c7026c5a3 am: 1c6a5ad92e am: 88d54c3080\nam: 06620ee22d\n\nChange-Id: I1a4de01fe23a03b42c052f23733d95e07135ab73\n"
    },
    {
      "commit": "06620ee22dca4af6646a2d0f6f25b2ecd755d9fd",
      "tree": "18a7a55085471337bf06265b98ef7942d395b2f4",
      "parents": [
        "0ee8c0357ac26b3dc96a797cfccb1431db16da6d",
        "88d54c30800377021c58af3a1f2605e871442812"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 27 11:03:11 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 27 11:03:11 2017 +0000"
      },
      "message": "Merge \"Clean up ClassPathPackageInfoSource\" am: 8c7026c5a3 am: 1c6a5ad92e\nam: 88d54c3080\n\nChange-Id: I3716fc728a6789a33851f4f0ad30a3ad9f421a17\n"
    },
    {
      "commit": "1c6a5ad92e84780be005877493fd5a281517194e",
      "tree": "12f5b16d9039d1b3ef8d301013e983bc65214f0b",
      "parents": [
        "516bd5f8622c24d774b72ed3825cdc860cd045d2",
        "8c7026c5a32684976ffb745daf7ec5bab729f274"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 27 10:52:39 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 27 10:52:39 2017 +0000"
      },
      "message": "Merge \"Clean up ClassPathPackageInfoSource\"\nam: 8c7026c5a3\n\nChange-Id: I503ae16c4d47ce3cecb79987da919c7f579347da\n"
    },
    {
      "commit": "aaaba76810c0b5b61c609a929536b64ac7e368fc",
      "tree": "9dabcf4edf22526ff3a057fcd5a0bb2d0be0ae53",
      "parents": [
        "3c5ab7d3243e646137d9e60c2a54ffc907a85a27"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 16:18:07 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 17:00:21 2017 +0100"
      },
      "message": "Clean up ClassPathPackageInfoSource\n\nPart of the work of removing JUnit and dependent android.test classes\nfrom the Android API involves providing a static library that developers\ncan include in their test applications to ease migration. That library\nwill be built directly from the source (as opposed to android.jar which\nis built from stubs) and so developers will be able to see classes and\nmethods that are not present in the stubs. This change is one of a\nnumber of similar changes that cleanup the existing non-API code in\norder to minimize the additional methods and classes exposed externally.\nThe basic approach is to remove unused classes and methods, use least\nvisible access modifier possible and generally minimize the amount of\npublicly visible code.\n\nPackageInfoSources only provided a static field and accessor method so\nthey were moved into ClassPathPackageInfoSource and PackageInfoSources\nwas removed.\n\nClassPathPackageInfo was only used in ClassPathPackageInfoSource and in\nTestGrouping. In the latter it was simply used as an intermediate value\nbetween ClassPathPackageInfoSource.getPackage(String packageName) and\nClassPathPackageInfo.getTopLevelClassesRecursive(String packageName).\nMoving that method into ClassPathPackageInfoSource allowed the\nClassPathPackageInfo to become an inner class of\nClassPathPackageInfoSource. As it is an inner class it no longer needed\nan explicit reference to the containing ClassPathPackageInfoSource.\n\nBug: 30188076\nTest: make checkbuild and ran FrameworkTestRunnerTests\nChange-Id: Idb0b6a585030805b9cff8562abb93b7e5920c53a\n"
    },
    {
      "commit": "9dbcd9306167af7d834522667796c06f4145a70d",
      "tree": "fb4b3104fa737ac68f81d0c1e6c65bdac0e88385",
      "parents": [
        "7d70f99ac1de27df2f2ed2d290959c9e40343840",
        "8d33b10edbc032db98a97eb9d4f5349afdab0709"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 14:57:34 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 26 14:57:34 2017 +0000"
      },
      "message": "Merge \"Remove a.t.TestCase\" am: 3c5ab7d324 am: 930ab689f0 am: 143f5d652c\nam: 8d33b10edb\n\nChange-Id: I372ea1e9456a303903bb57929129cc3f922cb8d9\n"
    },
    {
      "commit": "8d33b10edbc032db98a97eb9d4f5349afdab0709",
      "tree": "4d8f688326ec1b660dce01e95f01b03a93ba3b1a",
      "parents": [
        "4f9d89a380879a8d14d72e9c14eb2cce95ca01dd",
        "143f5d652ce31ff1ba7d42c45e8010de2dfc5c73"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 14:50:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 26 14:50:38 2017 +0000"
      },
      "message": "Merge \"Remove a.t.TestCase\" am: 3c5ab7d324 am: 930ab689f0\nam: 143f5d652c\n\nChange-Id: I1b2212164ab566f3619cdbe307ff9ee600242424\n"
    },
    {
      "commit": "143f5d652ce31ff1ba7d42c45e8010de2dfc5c73",
      "tree": "2bb43ff6448ffd46abe05b34695db4d80909d1f7",
      "parents": [
        "50826c5f2efd8e301a17db2164709c12e6ff0d06",
        "930ab689f031118fc2aeec241ff76e769c1d9955"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 14:43:13 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 26 14:43:13 2017 +0000"
      },
      "message": "Merge \"Remove a.t.TestCase\" am: 3c5ab7d324\nam: 930ab689f0\n\nChange-Id: I0d61b4e26c9551d177b5bb7bbdaab25885976c0d\n"
    },
    {
      "commit": "3c5ab7d3243e646137d9e60c2a54ffc907a85a27",
      "tree": "388daaef474e61398bf0c01145c807b8fae62140",
      "parents": [
        "98f2decdadaebe5160ce2661c1c1f4208b9cdd59",
        "e24e60ecacd956375a5cabdf9e67fefe7acabce0"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 14:24:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 26 14:24:31 2017 +0000"
      },
      "message": "Merge \"Remove a.t.TestCase\""
    },
    {
      "commit": "210a7331aa75923b3b8f79e5b2b9226059bc86cd",
      "tree": "70d0912c222a2ade826f044986823438e23b95dd",
      "parents": [
        "d709a3a3a3db30dbfcb87019dd6c945c048b99b5",
        "4f9d89a380879a8d14d72e9c14eb2cce95ca01dd"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 13:29:23 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 26 13:29:23 2017 +0000"
      },
      "message": "Merge \"Clean up Predicate related code in android.test\" into oc-dev-plus-aosp am: 50826c5f2e\nam: 4f9d89a380\n\nChange-Id: I24b978bb63875ed7e1af7041f8ecbbfc482e0614\n"
    },
    {
      "commit": "4f9d89a380879a8d14d72e9c14eb2cce95ca01dd",
      "tree": "20bdde0f9bb1bd7cdef268f32198540eb9cb98c1",
      "parents": [
        "99979253ddb67d257bef29e06b047a877f9f5412",
        "50826c5f2efd8e301a17db2164709c12e6ff0d06"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 13:21:28 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 26 13:21:28 2017 +0000"
      },
      "message": "Merge \"Clean up Predicate related code in android.test\" into oc-dev-plus-aosp\nam: 50826c5f2e\n\nChange-Id: Ica9b9b478b670ec5467732a09cf123dd63780c97\n"
    },
    {
      "commit": "50826c5f2efd8e301a17db2164709c12e6ff0d06",
      "tree": "d9c473bfd9195b66684505627adcffb24cd7d48a",
      "parents": [
        "834cf8d664d4955696555b7bc47dbe8d58d8164d",
        "fedb4b745693afba9627f8971346d5151101fb88"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 13:15:03 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 26 13:15:09 2017 +0000"
      },
      "message": "Merge \"Clean up Predicate related code in android.test\" into oc-dev-plus-aosp"
    },
    {
      "commit": "99c879f1d39fce2682950b0d0bbcb29ecad66731",
      "tree": "0c1654fcf62ecae9cae634828656d195272f9447",
      "parents": [
        "da1495346ecdde2e4984bc9ff8570c1c360dbcfd",
        "88f06cba46b17f2782f838548ff9305795fd5b87"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 11:49:54 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 26 11:49:54 2017 +0000"
      },
      "message": "Merge \"Removed a.t.TestRunner and cleanup a.t.TestPrinter\" am: 1ed43cafb6 am: 4601ebf945 am: 1fee4dcd5d\nam: 88f06cba46\n\nChange-Id: I4c8b5ff724ccb73a681ba5bef86ebe5a502383be\n"
    },
    {
      "commit": "88f06cba46b17f2782f838548ff9305795fd5b87",
      "tree": "203d55060a77b6c315ed184343d408dc13b6487a",
      "parents": [
        "59410a96edf87aee848b648cb4a618a04424aeda",
        "1fee4dcd5d761a7631acbc499b63138abf9f9f35"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 11:42:54 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 26 11:42:54 2017 +0000"
      },
      "message": "Merge \"Removed a.t.TestRunner and cleanup a.t.TestPrinter\" am: 1ed43cafb6 am: 4601ebf945\nam: 1fee4dcd5d\n\nChange-Id: I6362ff0e8e76efd4d7b8c326f77b282740d01e03\n"
    },
    {
      "commit": "1fee4dcd5d761a7631acbc499b63138abf9f9f35",
      "tree": "b1cef15ecd508ae6481b8c41f1754c9a1ac31b66",
      "parents": [
        "c584a2596e297d0cde852ea7cea5471933cd0ab5",
        "4601ebf94525a9533c33ed0d3474bb79a161e757"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 11:35:00 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 26 11:35:00 2017 +0000"
      },
      "message": "Merge \"Removed a.t.TestRunner and cleanup a.t.TestPrinter\" am: 1ed43cafb6\nam: 4601ebf945\n\nChange-Id: Icf7b8d1f5a3e0d18cd9a096a8171d6dab98b5992\n"
    },
    {
      "commit": "1ed43cafb62fd8ee7f8e95c49501e1b0d4f534bf",
      "tree": "cada6562d9202b095d478bbc89fd118bc1f67482",
      "parents": [
        "43851d01d86f53d3a3a71b22a9af861de2a03afe",
        "b3f83ae66b2128bdb69c087f40595e3265717e7c"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 11:21:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 26 11:21:22 2017 +0000"
      },
      "message": "Merge \"Removed a.t.TestRunner and cleanup a.t.TestPrinter\""
    },
    {
      "commit": "19290e456f9316aa965c5d88680a94f9e8787669",
      "tree": "22b79b5e73c917c83bc72d781edf7afe6f8ea71c",
      "parents": [
        "d9dd77ea6a04ccea47c9366785ec7d7171c5c32a",
        "ad654a3af546764a6840cdb8521dd7aab5facb43"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 09:50:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 26 09:50:09 2017 +0000"
      },
      "message": "Merge \"Clean up TestCaseUtil\" am: 43851d01d8 am: e38d503394 am: b5b6e7cf45\nam: ad654a3af5\n\nChange-Id: Idd36689c3a90728ee543be0ffa7457fe79b66ba3\n"
    },
    {
      "commit": "ad654a3af546764a6840cdb8521dd7aab5facb43",
      "tree": "164eb5fe61236b679b44c47fa8c29be324922830",
      "parents": [
        "a18500b50807031ede92253416d44ea00689e9c1",
        "b5b6e7cf450c84be596ef895bda17ee09e6fa602"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 09:41:44 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 26 09:41:44 2017 +0000"
      },
      "message": "Merge \"Clean up TestCaseUtil\" am: 43851d01d8 am: e38d503394\nam: b5b6e7cf45\n\nChange-Id: I98265e973df1bf7ac28b7f79f6ccd0a865762304\n"
    },
    {
      "commit": "b5b6e7cf450c84be596ef895bda17ee09e6fa602",
      "tree": "ea7db2722cb0b201607b43fd553c642494bbf356",
      "parents": [
        "a29861b0c970055927675731e00e93c51f1c5668",
        "e38d5033944216f221a0a8e72bd12167373aae20"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 26 09:33:23 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 26 09:33:23 2017 +0000"
      },
      "message": "Merge \"Clean up TestCaseUtil\" am: 43851d01d8\nam: e38d503394\n\nChange-Id: I62a80b405d05ec7b4da050bd6b01df4c965d6187\n"
    },
    {
      "commit": "c25c3da8b67568bbcf52ae2060c5555f82b9e563",
      "tree": "71509d2077dc6cbde3b6af2dfeacc2799e248af2",
      "parents": [
        "17c78a1e6b3cff406893c09bfcc6b145346bcd36"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jun 22 08:22:18 2017 -0700"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Jun 23 12:27:23 2017 +0000"
      },
      "message": "Stop loading other package\u0027s font by default.\n\nSince CONTEXT_RESTRICTED is not a default flag of createPackageContext,\nwe can\u0027t rely on it for preventing unexpected font injections.\nTo protect developers and existing apps from a risk of font injection,\nstop loading font from other package\u0027s resouce unless the developer\nexplicitly set CONTEXT_IGNORE_SECURITY.\n\nBug: 62813533\nBug: 62879353\nTest: Manually done\nMerged-In: I4442ddc48dadb5c968b444be86038b602074d301\nChange-Id: I4442ddc48dadb5c968b444be86038b602074d301\n(cherry picked from commit 6d6cd68660635d670b0cb17f348b7c1da13704b3)\n"
    },
    {
      "commit": "ba12631bba5ea856b78c3488d988584ead8969fb",
      "tree": "fc679362c6ccdf8a2eb06f9128b098839a661b12",
      "parents": [
        "41b743d8ad10a48f7be164f0943b01047928a987",
        "824d75e0e13b916155623a83be8115f3d526db7c"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Jun 23 04:23:44 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jun 23 04:23:44 2017 +0000"
      },
      "message": "Merge \"Stop loading other package\u0027s font by default.\" into oc-dev\nam: 824d75e0e1\n\nChange-Id: I5518dbd8b5d8a4548ea00bbfca0e3aee87880ee7\n"
    },
    {
      "commit": "80f6a985c3662bc65ffba83975ec23c1a93ed888",
      "tree": "49632f94afc3270d5759dcf4160e8f77847ca7b9",
      "parents": [
        "2ef19c1d73f89ca4718b5a8f0c2e7221621e844f"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jun 22 08:22:18 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jun 22 19:07:17 2017 -0700"
      },
      "message": "Stop loading other package\u0027s font by default.\n\nSince CONTEXT_RESTRICTED is not a default flag of createPackageContext,\nwe can\u0027t rely on it for preventing unexpected font injections.\nTo protect developers and existing apps from a risk of font injection,\nstop loading font from other package\u0027s resouce unless the developer\nexplicitly set CONTEXT_IGNORE_SECURITY.\n\nThis CL contains Iac2a6fb3d82ef23d5ca6ee33f4aaa9ed28455271 by manual\nmerging to handle repository split.\n\nBug: 62813533\nBug: 62879353\nTest: Manually done\nMerged-In: I4442ddc48dadb5c968b444be86038b602074d301\nChange-Id: I4442ddc48dadb5c968b444be86038b602074d301\n"
    },
    {
      "commit": "abc6fd57de4450a9a3769e064ca69e05aeb2d5de",
      "tree": "b3a6b7729cc679b51341161da6b909de978a05db",
      "parents": [
        "6de0d0983078ab933fcea43e750d6d22f05bf426",
        "6d6cd68660635d670b0cb17f348b7c1da13704b3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 22 22:28:02 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 22 22:28:10 2017 +0000"
      },
      "message": "Merge \"Stop loading other package\u0027s font by default.\""
    },
    {
      "commit": "60184293e10d4cf8474b5e5c247c105b3519fc4f",
      "tree": "9fecf96f52111e5857f22fae932575ee81375035",
      "parents": [
        "e0e4324d49ae73fc7b73f06f6f2e82ef9def0411",
        "989b7db027647b2e385d86a9b28fec49aa777a3e"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 22 20:50:34 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 22 20:50:34 2017 +0000"
      },
      "message": "Merge \"Merge \"Ensure that android.test tests pass\" am: 156775fea8 am: 34dc5a58b3 am: e211119fea\" into oc-dr1-dev-plus-aosp\nam: 989b7db027\n\nChange-Id: I1e3bcb0b3607464ab2267c14ff2e8dcd96a19f56\n"
    },
    {
      "commit": "aa7f42c5c1784795ded23d96c745d71754f95c08",
      "tree": "8b56f69ecdfb97c3d08fda0764a683357535661f",
      "parents": [
        "8b25f26308c6760f11f90ec832a95a13af6dab60",
        "e211119fea8e01e573ecde57ced2e9bf8dfbf65e"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 22 20:15:27 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 22 20:15:27 2017 +0000"
      },
      "message": "Merge \"Ensure that android.test tests pass\" am: 156775fea8 am: 34dc5a58b3\nam: e211119fea\n\nChange-Id: I4692f9a86dae8bb2c5476eb477924230034cdd6b\n"
    },
    {
      "commit": "6d6cd68660635d670b0cb17f348b7c1da13704b3",
      "tree": "46ff413dabcfa566e5e7174ed24b41da1ce13ec8",
      "parents": [
        "58aeff811f2da99537a8a9531fc58cea8ffbb867"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jun 22 08:22:18 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Jun 22 08:36:03 2017 -0700"
      },
      "message": "Stop loading other package\u0027s font by default.\n\nSince CONTEXT_RESTRICTED is not a default flag of createPackageContext,\nwe can\u0027t rely on it for preventing unexpected font injections.\nTo protect developers and existing apps from a risk of font injection,\nstop loading font from other package\u0027s resouce unless the developer\nexplicitly set CONTEXT_IGNORE_SECURITY.\n\nBug: 62813533\nBug: 62879353\nTest: Manually done\nChange-Id: I4442ddc48dadb5c968b444be86038b602074d301\n"
    },
    {
      "commit": "fedb4b745693afba9627f8971346d5151101fb88",
      "tree": "73d4ab78b4a0877817f19ff34b60dbff9ddc9e0d",
      "parents": [
        "e211119fea8e01e573ecde57ced2e9bf8dfbf65e"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 22 10:47:25 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 22 15:48:44 2017 +0100"
      },
      "message": "Clean up Predicate related code in android.test\n\nPart of the work of removing JUnit and dependent android.test classes\nfrom the Android API involves providing a static library that developers\ncan include in their test applications to ease migration. That library\nwill be built directly from the source (as opposed to android.jar which\nis built from stubs) and so developers will be able to see classes and\nmethods that are not present in the stubs. This change is one of a\nnumber of similar changes that cleanup the existing non-API code in\norder to minimize the additional methods and classes exposed externally.\nThe basic approach is to remove unused classes and methods, use least\nvisible access modifier possible and generally minimize the amount of\npublicly visible code.\n\nThe HasClassAnnotation and HasMethodAnnotation were never used\nseparately and only used by HasAnnotation. This merges the functionality\ninto a single nested class in TestPredicates, hidden behind the new\nTestPredicates.hasAnnotation(). The HasAnnotationTest was renamed as\nTestPredicatesTest and the HasClassAnnotationTest and\nHasMethodAnnotationTest classes were removed as their tests provide no\nadditional coverage. The removal of the Has*Annotation.java files means\nthat the test-runner/src/android/test/suitebuilder/annotation/ directory\nis empty apart from the package.html file so that was moved to\nlegacy-test to sit alongside the actual annotation classes.\n\nThe Predicates class, while part of the legacy-test module was only\never used by the test-runner module and only its not() method was\nactually used. So, the not() method and associated nested class were\nmoved to TestPredicates, the tests for not() were moved to\nTestPredicatesTest and the Predicates* classes were removed.\nThat allowed for the removal of the legacy-android-tests as that is now\nempty.\n\nTestPredicates has a number of constants that were public. They were\nhidden by moving them to the class that actually used them.\n\nA minor generic issue was fixed in AssignableFrom.\n\nBug: 30188076\nTest: make checkbuild and run FrameworkTestRunnerTests\nChange-Id: I861da388a4146bb28e1e480d1b7ba9137b7b270e\n"
    },
    {
      "commit": "e211119fea8e01e573ecde57ced2e9bf8dfbf65e",
      "tree": "9e2e6ff8e81cb56b7d74c25af9e031c51fd6f2a6",
      "parents": [
        "78def25969de6aa4af000e6387618fb2c5b10490",
        "34dc5a58b33811b55263629c500966d44978288b"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 22 14:39:08 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 22 14:39:08 2017 +0000"
      },
      "message": "Merge \"Ensure that android.test tests pass\" am: 156775fea8\nam: 34dc5a58b3\n\nChange-Id: I546ea542d0781f825e131eb94bc54e22adadfc4e\n"
    },
    {
      "commit": "bd96f408085701fe04fb46acdd3a101cfdebe064",
      "tree": "211204ffbd93dbe997cbde7f1c78409ff902ae4d",
      "parents": [
        "2a637cf9b0f2c2ebaf573a1f478e31dc1e6a8354"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 22 13:29:26 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 22 15:21:32 2017 +0100"
      },
      "message": "Clean up TestCaseUtil\n\nPart of the work of removing JUnit and dependent android.test classes\nfrom the Android API involves providing a static library that developers\ncan include in their test applications to ease migration. That library\nwill be built directly from the source (as opposed to android.jar which\nis built from stubs) and so developers will be able to see classes and\nmethods that are not present in the stubs. This change is one of a\nnumber of similar changes that cleanup the existing non-API code in\norder to minimize the additional methods and classes exposed externally.\nThe basic approach is to remove unused classes and methods, use least\nvisible access modifier possible and generally minimize the amount of\npublicly visible code.\n\nTestCaseUtil.getTestCaseNames() is only used by tests but its tests did\nprovide some coverage of the getTests() method so remove the method and\nthe tests the method was simply moved into TestCaseUtilTest and the\ntests renamed to make it clearer that they are testing\nTestCaseUtil.getTests().\n\nSimilarly, TestCaseUtil.createTestSuite() was only used by tests but its\ntests did provide some coverage of the invokeSuiteMethodIfPossible()\nmethod so the tests were modified and renamed to preserve that coverage.\n\nTestCaseUtil.getTestAtIndex() was completely unused so was just removed.\n\nBug: 30188076\nTest: make checkbuild and ran FrameworkTestRunnerTests\nChange-Id: I62bbdbab428d7560f0c7df11f313fe60cfd31d13\n"
    },
    {
      "commit": "e24e60ecacd956375a5cabdf9e67fefe7acabce0",
      "tree": "0c6acb116f80662e2f72ac9e594c5a6dd1317474",
      "parents": [
        "2a637cf9b0f2c2ebaf573a1f478e31dc1e6a8354"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 22 14:48:58 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 22 15:21:11 2017 +0100"
      },
      "message": "Remove a.t.TestCase\n\nPart of the work of removing JUnit and dependent android.test classes\nfrom the Android API involves providing a static library that developers\ncan include in their test applications to ease migration. That library\nwill be built directly from the source (as opposed to android.jar which\nis built from stubs) and so developers will be able to see classes and\nmethods that are not present in the stubs. This change is one of a\nnumber of similar changes that cleanup the existing non-API code in\norder to minimize the additional methods and classes exposed externally.\nThe basic approach is to remove unused classes and methods, use least\nvisible access modifier possible and generally minimize the amount of\npublicly visible code.\n\nThe android.test.TestCase class is only referenced from the\nDatabasePerformanceTests class. There do not seem to be any references\nto that class either and there is a NewDatabasePerformanceTests.java\nfile in the same directory that looks to be a JUnit based replacement.\n\nBug: 30188076\nTest: make checkbuild and ran FrameworkTestRunnerTests\nChange-Id: Iafb26dc98a40715244f07d1c9e05ada5b1602ebf\n"
    },
    {
      "commit": "b3f83ae66b2128bdb69c087f40595e3265717e7c",
      "tree": "7be50193362fec7c0f66a0eaa17103261352d061",
      "parents": [
        "2a637cf9b0f2c2ebaf573a1f478e31dc1e6a8354"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 22 14:17:29 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 22 15:17:26 2017 +0100"
      },
      "message": "Removed a.t.TestRunner and cleanup a.t.TestPrinter\n\nPart of the work of removing JUnit and dependent android.test classes\nfrom the Android API involves providing a static library that developers\ncan include in their test applications to ease migration. That library\nwill be built directly from the source (as opposed to android.jar which\nis built from stubs) and so developers will be able to see classes and\nmethods that are not present in the stubs. This change is one of a\nnumber of similar changes that cleanup the existing non-API code in\norder to minimize the additional methods and classes exposed externally.\nThe basic approach is to remove unused classes and methods, use least\nvisible access modifier possible and generally minimize the amount of\npublicly visible code.\n\nThe TestRunner class is not part of the API and is unused anywhere\nwithin Android code (apart from one unused import which is in the\nprocess of being removed) and in TestPrinter.\n\nTestPrinter is not part of the API and its only use of TestRunner is to\nimplement the TestRunner.TestListener interface. It was safe to stop\nTestPrinter from implementing TestRunner.TestListener because the latter\nis only called from TestRunner which itself is never used. TestPrinter\nwas made package private as it is only used from the same package.\n\nOne the usages in TestPrinter were removed it was safe to remove\nTestRunner.\n\nBug: 30188076\nTest: make checkbuild and ran FrameworkTestRunnerTests\nChange-Id: I0f4a6cf1fbec14c4778c6e09b8eabf822802774f\n"
    },
    {
      "commit": "2a637cf9b0f2c2ebaf573a1f478e31dc1e6a8354",
      "tree": "f17fafccf21c1fb0351ada95564628ff775fd843",
      "parents": [
        "e74f3adba563d95159916014b21e9463a6c40a07"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 22 12:52:18 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 22 12:58:58 2017 +0100"
      },
      "message": "Ensure that android.test tests pass\n\nIt looks as though the tests in test-runner/tests have not actually been\nrun successfully for over 7 years. As a result they have degraded. This\nchange fixes the tests so that they will pass and provides instructions\non how to run them.\n\nTestCaseUtilTest.testGetTestCaseNamesForTestSuiteWithSuiteMethod\n    This fails because it expected 2 names to be returned but only\n    returns 0. The reason for that is although TwoTestsInTestSuite has a\n    Test suite() method that does create a TestSuite with two tests the\n    TestCaseUtil method does not actually call suite(). Instead, because\n    TwoTestsInTestSuite is a TestSuite it just calls the tests() method\n    on it which returns an empty Enumeration because TwoTestsInTestSuite\n    is empty.\n\n    The support for \"static Test suite() {}\" is broken but fixing this\n    will affect the behavior of InstrumentationTestRunner which is used\n    in thousands of different places both in and outside Google and so\n    could cause untold problems.\n\nTestSuiteBuilderTest.testIncludeAllPackagesUnderHere\n    Reformat the list, one per line and then add missing name\n    \"testPublicConstructor\".\n\nErrorTest/FailingTest\n    These tests are not meant to be run on their own, only as part of a\n    separate test. The RunAsPartOfSeparateTest annotation was added to\n    allow these to be excluded using notAnnotation as shown in the\n    instructions for running the tests.\n\nBug: 30188076\nTest: followed new instructions in test-runner/tests/Android.mk\nChange-Id: I60e7bee9cd08a9ab7777a2578fc58da772de5c1f\n"
    },
    {
      "commit": "00d4d01c3ae855690b8770090b10c80ca12088e0",
      "tree": "d4143ed10e2718fedbc277ccd3eb129b452357a6",
      "parents": [
        "915ede0fc3abc0b7ccb76c35084020602e2a1b4c",
        "5361c48199edb15a4de2e74cd6ae4df28f598b68"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 11:26:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 21 11:27:01 2017 +0000"
      },
      "message": "Merge \"Remove android.test dependencies on a.o.PerformanceCollector\""
    },
    {
      "commit": "d2cc32bcdef5feefb42b3897cfd7efbed1728eff",
      "tree": "97acd9258e550f8885547c6b36e91a763c1f6261",
      "parents": [
        "2a7f6b8f8483116b94a0c0e7246470dd949ecc22",
        "e2744c2705698390dfc280efef72f1bb9a1ce7f7"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 09:24:58 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 21 09:24:58 2017 +0000"
      },
      "message": "Merge \"Cleanup a.t.TestGrouping\" am: 01dcf54e9a am: e6ac3a4efc\nam: e2744c2705\n\nChange-Id: I3493057c8362733f117dbc25f654497b9f22f219\n"
    },
    {
      "commit": "e2744c2705698390dfc280efef72f1bb9a1ce7f7",
      "tree": "892839a67d70d70ef2513f624aed25a879b2a868",
      "parents": [
        "b4da12905f53a604d1aaf699fb7172e25bca2e7d",
        "e6ac3a4efc8464b32831c5c85d7d2be3c4212392"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 09:18:01 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 21 09:18:01 2017 +0000"
      },
      "message": "Merge \"Cleanup a.t.TestGrouping\" am: 01dcf54e9a\nam: e6ac3a4efc\n\nChange-Id: Id41ba23de38e5131460cad283fd5d7bea66d2156\n"
    },
    {
      "commit": "01dcf54e9a0a77bdfb9694b1c40626c1bebc2168",
      "tree": "118c15632d66022069f7ec32160b104c6b4bad55",
      "parents": [
        "0e4f1358d6b2a1b321f8deaded61643eed908abb",
        "e2e557976f1d68bf4d6a147ec484e5455f15eeef"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 21 09:03:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 21 09:03:29 2017 +0000"
      },
      "message": "Merge \"Cleanup a.t.TestGrouping\""
    },
    {
      "commit": "37bd29af8892fec2b7a11f9475b7221b77320d03",
      "tree": "e3b168a5c08eeaa00608ed60cdaa817c927d9ad0",
      "parents": [
        "e1b439a06dc44be7e40e3c056fb21759bac1a6db",
        "b4621a4072042ccfab275407afed1fc9a688965e"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 08:32:18 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 21 08:32:18 2017 +0000"
      },
      "message": "Merge \"Remove unused a.t.InstrumentationUtils\" am: 0e4f1358d6 am: 08c12d21f5\nam: b4621a4072\n\nChange-Id: I76b035a84dd184b2ff92fc175df383bc9983f616\n"
    },
    {
      "commit": "e1b439a06dc44be7e40e3c056fb21759bac1a6db",
      "tree": "00fadfa42d8e151a9d17eec0fd03a4e7e8e91dc7",
      "parents": [
        "6aff0ffe8befb646f1aa46ea513e7e89701cec00",
        "4d7e8fb79e6cf3e294c130ace28c1c7de0af96f9"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 08:29:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 21 08:29:30 2017 +0000"
      },
      "message": "Merge \"Cleanup a.t.InstrumentationTestRunner\" am: 9d5576e081 am: 66b8ef6615\nam: 4d7e8fb79e\n\nChange-Id: I6d1de1dcb677e6c2c85c75fe8c5166b07cf713dd\n"
    },
    {
      "commit": "d1d3d0fcfc82eb5550be4660fe9cfec3b19db7db",
      "tree": "0d848ee9789e2e962ec2be09e4ea32c2340e15cd",
      "parents": [
        "4aef87575c13cc3e62e837232fe46a9d20989bcf",
        "28600f2cae318f5977734f17a509031e0c39ebb4"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 08:20:29 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 21 08:20:29 2017 +0000"
      },
      "message": "Merge \"Remove unused a.t.s.InstrumentationTestSuiteBuilder\" am: 1935dce8eb am: a4d2464189\nam: 28600f2cae\n\nChange-Id: I9004d50829d18736f6d50f6bd48cb6d7c3b6e605\n"
    },
    {
      "commit": "b4621a4072042ccfab275407afed1fc9a688965e",
      "tree": "4cc52765705255a0240f24930524f99a44a9e8a3",
      "parents": [
        "4d7e8fb79e6cf3e294c130ace28c1c7de0af96f9",
        "08c12d21f5c17c82e2d2f0af393a61b9bbfa4546"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 08:16:42 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 21 08:16:42 2017 +0000"
      },
      "message": "Merge \"Remove unused a.t.InstrumentationUtils\" am: 0e4f1358d6\nam: 08c12d21f5\n\nChange-Id: I46ab06228623aa4e350b1285761e062e1d7393c0\n"
    },
    {
      "commit": "4d7e8fb79e6cf3e294c130ace28c1c7de0af96f9",
      "tree": "67dd38e83394c16998a13bf5324803b03aa15e20",
      "parents": [
        "28600f2cae318f5977734f17a509031e0c39ebb4",
        "66b8ef6615ad10454ea98268bfc764e39edd3a97"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 08:13:05 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 21 08:13:05 2017 +0000"
      },
      "message": "Merge \"Cleanup a.t.InstrumentationTestRunner\" am: 9d5576e081\nam: 66b8ef6615\n\nChange-Id: I3ca3f23c2f8a741daf867aad08f57bac373e5d91\n"
    },
    {
      "commit": "4aef87575c13cc3e62e837232fe46a9d20989bcf",
      "tree": "a951a6c500f5e51185b15a08370a0ba1574c116d",
      "parents": [
        "c009f2edcdfbef75a981678076530bc0681d43ae",
        "f18dd720d36fb7dffb0f65ab31bff1f838737cd7"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 08:12:05 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 21 08:12:05 2017 +0000"
      },
      "message": "Merge \"Remove unused android.test.DatabaseTestUtils\" am: 3724e7e5e9 am: e6e0601862\nam: f18dd720d3\n\nChange-Id: I06d4ce8bf1b5ea985c5deda2e2d0fe5b1e7d79e5\n"
    },
    {
      "commit": "28600f2cae318f5977734f17a509031e0c39ebb4",
      "tree": "328253ee0fbf1c15a07553bc5f9c955148883ee0",
      "parents": [
        "f18dd720d36fb7dffb0f65ab31bff1f838737cd7",
        "a4d24641895bb93a30fe96b002ab153a0a44197d"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 08:07:14 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 21 08:07:14 2017 +0000"
      },
      "message": "Merge \"Remove unused a.t.s.InstrumentationTestSuiteBuilder\" am: 1935dce8eb\nam: a4d2464189\n\nChange-Id: I88278d5cfd8fc3466cce39de3de54e34d67cbe0f\n"
    },
    {
      "commit": "f18dd720d36fb7dffb0f65ab31bff1f838737cd7",
      "tree": "ec17ea212db8a46758115070f647f029f32469e8",
      "parents": [
        "cc6cd46d707ab68984810bf51020f9718661d237",
        "e6e060186201580c070009d43efb8eed3c6a66eb"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 08:03:56 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 21 08:03:56 2017 +0000"
      },
      "message": "Merge \"Remove unused android.test.DatabaseTestUtils\" am: 3724e7e5e9\nam: e6e0601862\n\nChange-Id: I2c5e4c7af30893d9183ee35326814fcb4506d0e8\n"
    },
    {
      "commit": "0e4f1358d6b2a1b321f8deaded61643eed908abb",
      "tree": "848f4fa13bfa9fb8ec2b9e4842ff4825abd76b0b",
      "parents": [
        "9d5576e081f74d6b77d9d98c96534c82298f6e44",
        "44c717386d0aaacfdc19cf4786cd0f44f3a935fd"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 07:46:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 21 07:46:41 2017 +0000"
      },
      "message": "Merge \"Remove unused a.t.InstrumentationUtils\""
    },
    {
      "commit": "9d5576e081f74d6b77d9d98c96534c82298f6e44",
      "tree": "bf1f5dc8f48f47bacd2600b912be087b347d69dc",
      "parents": [
        "1935dce8ebdf888013dfb310528f66b26ae44840",
        "575f9da647c2006d3e895adb2c418b51e50d3d63"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 07:46:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 21 07:46:05 2017 +0000"
      },
      "message": "Merge \"Cleanup a.t.InstrumentationTestRunner\""
    },
    {
      "commit": "1935dce8ebdf888013dfb310528f66b26ae44840",
      "tree": "8e9888fb00e5a065744a1eaf4f859428a4daf317",
      "parents": [
        "3724e7e5e92f1bbaf3aea0d72ae1359c5a755d13",
        "4f1dbfed97ed482110dea1d606809dcd4355105b"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 07:46:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 21 07:46:03 2017 +0000"
      },
      "message": "Merge \"Remove unused a.t.s.InstrumentationTestSuiteBuilder\""
    },
    {
      "commit": "3724e7e5e92f1bbaf3aea0d72ae1359c5a755d13",
      "tree": "53cc89a126ec7457c9187396963fdc5318a8fb9c",
      "parents": [
        "ecbe6fa147a38369c2309c1b6fb7d7313d9ca320",
        "20fb642a5c9a34d2ec6d18d856e07305b1f4181e"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 07:46:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 21 07:46:00 2017 +0000"
      },
      "message": "Merge \"Remove unused android.test.DatabaseTestUtils\""
    },
    {
      "commit": "c66966d750f31aba21016bc357733846b4dd74c2",
      "tree": "11835a71f9b883c40fb6562e83b86f188abe4fee",
      "parents": [
        "0cdbff8d205d6353b83e285563c6185be4b4ebb1",
        "b3be07bc775e8f68273bc2097122751892c9d762"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 15:14:22 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 20 15:14:22 2017 +0000"
      },
      "message": "Merge \"Remove unused a.t.InstrumentationCoreTestRunner\" am: 1bfccadc81 am: dfc6939ed5\nam: b3be07bc77\n\nChange-Id: I12a6133de7ec7101327424854cf7a46debe3362d\n"
    },
    {
      "commit": "b3be07bc775e8f68273bc2097122751892c9d762",
      "tree": "16f39ca1958c43ba742b147233e5f733c7f60103",
      "parents": [
        "7f5e9bd68c24f5b7751de06a0d416cde1a70c593",
        "dfc6939ed57c0bda2715e3264f816a7d640a16bc"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 15:05:46 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 20 15:05:46 2017 +0000"
      },
      "message": "Merge \"Remove unused a.t.InstrumentationCoreTestRunner\" am: 1bfccadc81\nam: dfc6939ed5\n\nChange-Id: I5ccdb58bbcde73a33bdce9b65d95aad2bf7b931f\n"
    },
    {
      "commit": "e2e557976f1d68bf4d6a147ec484e5455f15eeef",
      "tree": "22b1af76216a1465201e9a1b91aa9f1e13c4ee49",
      "parents": [
        "48bc4c1f420d8f60c4d83d0ded4be0f37a37dd22"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 14:53:48 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 15:29:57 2017 +0100"
      },
      "message": "Cleanup a.t.TestGrouping\n\nTestGrouping is not part of the API but is used by classes that are and\nso will need to be included in the static library we ship as part of the\nSDK. As that library will be built directly from the source (as opposed\nto android.jar which is built from stubs) developers will be able to see\nclasses and methods that are hidden and so not present in the stubs.\n\nThis change makes TestGrouping and its members as inaccessible as\npossible. Unused methods and fields were removed and the TestGrouping\nclass was simplified by passing the ClassLoader into the constructor,\ninitializing the classLoader, making the classLoader field final,\nand removing the setClassLoader(ClassLoader) method.\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: Ie0545b1a61b74cdbc78667417f360b5197e2e128\n"
    },
    {
      "commit": "44c717386d0aaacfdc19cf4786cd0f44f3a935fd",
      "tree": "24edbc9099ff67c9c40768e0e0f13a7c05b670b9",
      "parents": [
        "48bc4c1f420d8f60c4d83d0ded4be0f37a37dd22"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 14:04:27 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 15:02:57 2017 +0100"
      },
      "message": "Remove unused a.t.InstrumentationUtils\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: Ia06e4ae77f2c0ca341ef7c04f5f32bdd6a06d59c\n"
    },
    {
      "commit": "575f9da647c2006d3e895adb2c418b51e50d3d63",
      "tree": "39b7eff77e5d97c348f4075828a84f30d7c4671b",
      "parents": [
        "48bc4c1f420d8f60c4d83d0ded4be0f37a37dd22"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 14:41:20 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 15:02:38 2017 +0100"
      },
      "message": "Cleanup a.t.InstrumentationTestRunner\n\nARGUMENT_TEST_CLASS, ARGUMENT_TEST_PACKAGE, ARGUMENT_TEST_SIZE_PREDICATE\nand ARGUMENT_DELAY_MSEC were made package private because they are not\npart of the API and are only used from within the same package.\n\nThe JavaDoc comment was changed to a multi-line comment because it is\nnot and should not be associated with any member.\n\nFixed a couple of minor JavaDoc issues.\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: If28460aec2fd0080e0f5346a83abae393b7a9fb2\n"
    },
    {
      "commit": "4f1dbfed97ed482110dea1d606809dcd4355105b",
      "tree": "85c210535f6dc287c799c8230401151b27ff52ee",
      "parents": [
        "48bc4c1f420d8f60c4d83d0ded4be0f37a37dd22"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 14:03:28 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 15:01:36 2017 +0100"
      },
      "message": "Remove unused a.t.s.InstrumentationTestSuiteBuilder\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: I30514123c077e6047227f888f5f1a20e71ee1988\n"
    },
    {
      "commit": "57d5b8d02d29fae063794c3515ea33cf4cd84304",
      "tree": "f62e6d28055c4a3b688cecddd5df534bb275f3b5",
      "parents": [
        "48bc4c1f420d8f60c4d83d0ded4be0f37a37dd22"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 11:05:25 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 14:58:33 2017 +0100"
      },
      "message": "Remove unused a.t.InstrumentationCoreTestRunner\n\nThe only usage of this was in the unused\ncts/tests/vm-tests-tf/AndroidManifest.xml which was deleted in\nhttps://android-review.googlesource.com/#/c/418900/.\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: I96f3586a7017f4cd14fa31207e0fff19c92f0de4\n"
    },
    {
      "commit": "20fb642a5c9a34d2ec6d18d856e07305b1f4181e",
      "tree": "bdab134a95b171e4681a16595b380feab4ab441c",
      "parents": [
        "48bc4c1f420d8f60c4d83d0ded4be0f37a37dd22"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 14:00:03 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 14:00:03 2017 +0100"
      },
      "message": "Remove unused android.test.DatabaseTestUtils\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: I11b1a3b90b9d17af9278ec8b28483eee01b75e81\n"
    },
    {
      "commit": "5361c48199edb15a4de2e74cd6ae4df28f598b68",
      "tree": "3546b7b961a5c48d458fef100582d2580bdf5978",
      "parents": [
        "dcfaccd3cc65b48eeb1c3730f2be09670550658f"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 15 14:50:08 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 20 10:26:29 2017 +0100"
      },
      "message": "Remove android.test dependencies on a.o.PerformanceCollector\n\nThe a.t.TimedTest annotation was removed because it was not in the API\nand was only used by the code that has been removed.\n\nThe a.t.PerformanceCollectorTestCase was removed because it was not in\nthe API and its only purpose was to allow the AndroidTestRunner to\nsupply a PerformanceCollector.PerformanceResultsWriter to a test.\n\nBug: 62652137\nTest: make checkbuild\nChange-Id: Ie90a7004ade1448cb6bc7e029f6ba5620db29bfd\n"
    },
    {
      "commit": "2fa69bdfcebbd038742347dbadc2d87420724468",
      "tree": "6c921f6e29b97a6ba81012edf7e59e05cbb2392b",
      "parents": [
        "6ce08f623ce706e1451caba4a2fa93592640389a",
        "e468747115da8a027a5b782fd2fa88547043b3ed"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jun 06 08:13:12 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 06 08:13:12 2017 +0000"
      },
      "message": "Merge \"Added android.test.mock and android.test.mock.sdk targets\" am: 46f8d427c4 am: de30ee2d40\nam: e468747115\n\nChange-Id: I50e3ae83eabe75cb87e0dd25acd05eee811c25ce\n"
    },
    {
      "commit": "4823935a84c0b1b27fee0af91ecbbf85fdde508b",
      "tree": "791eb288b95a1fc8f9a7829d028245e5c17cb096",
      "parents": [
        "12fe022fbda6d11fea9c3ee78fa66a8225250b72"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri May 19 09:05:54 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 05 13:49:50 2017 +0100"
      },
      "message": "Added android.test.mock and android.test.mock.sdk targets\n\nThe android.test.mock will be used for any targets that require\nandroid.test.mock classes but which do not already depend on the\nsdk. It is also the library that will be added to the classpath\nat runtime when an app has the following in their manifest.\n    \u003cuses-library android:name\u003d\"android.test.mock\"/\u003e\n\nThe android.test.mock.sdk will be used by targets that require\nandroid.test.mock classes and which build against the SDK. It\ncontains stub classes (like android.jar). It is also the library\nthat will be copied into the optional directory of the SDK.\n\n(cherry picked from f74752293d1d25633aebc42c600717d0296a0820)\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: If199180e1136da1927a9e7c7bcafbcfb29cf1274\nMerged-In: Ia3fcd47c644b8e5a573f891571a7b3772eac63f9\n"
    },
    {
      "commit": "f74752293d1d25633aebc42c600717d0296a0820",
      "tree": "ea46557fff5541398533081512a49fb71148514c",
      "parents": [
        "570227e82c441b3831bb52aff1aeacdca70b244a"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri May 19 09:05:54 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 05 11:19:58 2017 +0100"
      },
      "message": "Added android.test.mock and android.test.mock.sdk targets\n\nThe android.test.mock will be used for any targets that require\nandroid.test.mock classes but which do not already depend on the\nsdk. It is also the library that will be added to the classpath\nat runtime when an app has the following in their manifest.\n    \u003cuses-library android:name\u003d\"android.test.mock\"/\u003e\n\nThe android.test.mock.sdk will be used by targets that require\nandroid.test.mock classes and which build against the SDK. It\ncontains stub classes (like android.jar). It is also the library\nthat will be copied into the optional directory of the SDK.\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: Ia3fcd47c644b8e5a573f891571a7b3772eac63f9\n"
    },
    {
      "commit": "fe2368c38cc8ed57dbf7fb2614ca2d7939262818",
      "tree": "2d0bdd7afcc6fc7b6a8b2cf646dbbf135d2ffb82",
      "parents": [
        "1bd58ef4b1563bf02e6051b6468ddc9bac10866c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 17 15:42:35 2017 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue May 30 12:41:39 2017 -0700"
      },
      "message": "Refresh in-memory SharedPreferences instances after restore\n\nExisting instances don\u0027t know that the file has changed out from\nunder them, so they continue to return stale values from reads, and\nrisk overwriting restored data with stale content if writes are\nperformed.  We now tell the backing cache system to induce a\nreload after restore (i.e. after we might have written a relevant\nfile out from under it).\n\nAlong the way we shook out an irregularity in the way we were\nsetting up the context topology of non-lifecycle instances of\nthe metadata-handling BackupAgent subclass, so that\u0027s fixed\nnow too.\n\nBug 12061817\nTest: cts-tradefed run cts -m CtsBackupHostTestCases\n\nChange-Id: I401fe9297235b55d8a8f041e430d122dc6e24129\n"
    },
    {
      "commit": "51829ae72f5785845cd7a24f448bdaab5091dd28",
      "tree": "3bc48f9eb0015a42de002d53bccf473abc482f55",
      "parents": [
        "763b36c7eb6a641127b291aa41b40648977538b1",
        "1e0a89055d4ebfcdb217e90da7242fec2179e3d9"
      ],
      "author": {
        "name": "Sunny Goyal",
        "email": "sunnygoyal@google.com",
        "time": "Fri May 12 21:27:37 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 12 21:27:37 2017 +0000"
      },
      "message": "Merge \"Setting Session commited broadcast when an existing apk is enabled for a different user\" into oc-dev am: fc157e702f\nam: 1e0a89055d\n\nChange-Id: Ifefcd98f5df6a3175ad2d25aa058555ed02a4854\n"
    },
    {
      "commit": "1e0a89055d4ebfcdb217e90da7242fec2179e3d9",
      "tree": "b753e1b769278c3dcd051d8be8c04e1ee880a071",
      "parents": [
        "75a7b33a1aedde73e8c89d76b2575d28fee9e7d4",
        "fc157e702f7bc79a1156bb8e54efa495984981a5"
      ],
      "author": {
        "name": "Sunny Goyal",
        "email": "sunnygoyal@google.com",
        "time": "Fri May 12 21:16:32 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 12 21:16:32 2017 +0000"
      },
      "message": "Merge \"Setting Session commited broadcast when an existing apk is enabled for a different user\" into oc-dev\nam: fc157e702f\n\nChange-Id: I4cabbad8bac8fb24c86506a89c29d0a34b90a564\n"
    },
    {
      "commit": "a31a74b993578573eca33ca68762a98c6f6cb904",
      "tree": "6e6d5082ecff304a06d065b2cbca665bfd6af871",
      "parents": [
        "731c41950af2a950f2fb7dbb265ca1ac39710f10"
      ],
      "author": {
        "name": "Sunny Goyal",
        "email": "sunnygoyal@google.com",
        "time": "Thu May 11 15:59:19 2017 -0700"
      },
      "committer": {
        "name": "Sunny Goyal",
        "email": "sunnygoyal@google.com",
        "time": "Fri May 12 10:00:30 2017 -0700"
      },
      "message": "Setting Session commited broadcast when an existing apk is enabled for\na different user\n\nTest: Manual tests and CTS\nBug: 38204385\nChange-Id: Ic3bddbc2e6070c11b11f0685077db7737f2b8849\n"
    },
    {
      "commit": "e1124dee82bdcb870c6a34b4dd7f7c30d970b88a",
      "tree": "1753db598953c1c1bcab1069f0dd818b860a53b0",
      "parents": [
        "60d3808761aec695d5f4c6ff87e259466558d8bd",
        "943041abd2c6ca56868361479760e3cb4017757e"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri May 12 13:10:58 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 12 13:10:58 2017 +0000"
      },
      "message": "Merge changes I4c0e7fdd,I9ea3827a am: c876eece68 am: 557996e1d0 am: a158b3cb15\nam: 943041abd2\n\nChange-Id: Icc328d9243de8ff1e167313b5554a5bf757eab93\n"
    },
    {
      "commit": "943041abd2c6ca56868361479760e3cb4017757e",
      "tree": "317dda07375ba65630869060d248ab121152b45a",
      "parents": [
        "9bc7405c30bdcf42308da0cb6153132800c8f58e",
        "a158b3cb15df89b549812e2f54769947bb62ecda"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri May 12 13:03:29 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 12 13:03:29 2017 +0000"
      },
      "message": "Merge changes I4c0e7fdd,I9ea3827a am: c876eece68 am: 557996e1d0\nam: a158b3cb15\n\nChange-Id: Ia76a1e34c541c64d4b226b9492ca6f05d30fc5a4\n"
    },
    {
      "commit": "2231eb42ec82ce4996e65803b59fc01057a887f4",
      "tree": "cc6b062196de70c7411c52440584d84f959b298a",
      "parents": [
        "8c5a24d16926fb14f407ba51026f9a5b973b2e01"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed May 10 15:05:24 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu May 11 12:42:33 2017 +0100"
      },
      "message": "Remove dependency on internal FileUtils class\n\nIn preparation for building android.legacy.test library against\nthe test API this removes a dependency on internal classes.\n\nBug: 30188076\nTest: make checkbuild cts-tradefed run cts -m CtsContentTestCases -t android.content.cts.SyncStorageEngineTest\nChange-Id: I4c0e7fdd368e96459c8404ff7cea8738683d0ec1\n"
    },
    {
      "commit": "8c5a24d16926fb14f407ba51026f9a5b973b2e01",
      "tree": "5ffa82b89064abbadc1d7ef6e20c6a9a9ac5cac7",
      "parents": [
        "9588b607f048d0f513d674e90f9d0823928d1d26"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed May 10 13:30:16 2017 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu May 11 12:41:31 2017 +0100"
      },
      "message": "Remove dependency on com.google.android.collect classes\n\nIn preparation for building android.legacy.test library against\nthe SDK this removes a dependency on internal classes.\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: I9ea3827ab5db167c8cbddad25f0815c942681092\n"
    },
    {
      "commit": "3d2af7f72a2e6be36f0f2cbf899ad4d0bde451b4",
      "tree": "a7f0d7b1b431a824ce4e57663c1875ffe1c94cc9",
      "parents": [
        "d600fce5746366d4d0251455a3499a6ec69275d5"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Apr 19 19:56:21 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 27 17:16:16 2017 -0700"
      },
      "message": "SystemApi for dex module registration\n\nPackageManager#registerDexModule() allows apps which can call\nsystem apis to register a dex module with the Package Manager.\n\nThe PM may optimize the modules on the spot if needed. This is\nparticular useful for shared dex modules (e.g. chimera modules)\nwhich are loaded in multiple processes.\n\nTest:  adb  shell am instrument -e class\n\u0027android.content.pm.PackageManagerTests\u0027 -w\n\u0027com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner\u0027\nBug: 37290820\nChange-Id: I9ea8f937a76d2549a29e90a6c84c53c2e44a1ee4\n"
    },
    {
      "commit": "1f4e053aef81e38ed905c210687c00d8f8d8bda4",
      "tree": "c45bd2ae2859f7edb997a94256d17fc4c04fce3c",
      "parents": [
        "4e45b1491a11edd85213eee1a3323505a1f7ac2e",
        "6d6015f652f1b7bca129a22b1bd256b990e3ca28"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Thu Apr 20 19:52:44 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 20 19:52:51 2017 +0000"
      },
      "message": "Merge \"Address API review comments for registerReceiver\" into oc-dev"
    },
    {
      "commit": "fb4fb03cc3aa273c763df97f99eae1ba11594997",
      "tree": "19797f683f6b32bd15d9ed539f317786075f3fcb",
      "parents": [
        "08ca0a5a9eab09686cff1ee3ba516ab9b06074a3",
        "345ffa5421f4158b9c30439b9f18aed7b61aaea9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 20 03:53:33 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 20 03:53:37 2017 +0000"
      },
      "message": "Merge \"Address API council comments\" into oc-dev"
    },
    {
      "commit": "6d6015f652f1b7bca129a22b1bd256b990e3ca28",
      "tree": "a091bfe73f97d84b82732b11e0f8076d693844ba",
      "parents": [
        "4132f860419584bf4aefa7b6a3a708b25643675b"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Tue Apr 18 11:25:16 2017 -0700"
      },
      "committer": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Wed Apr 19 15:06:35 2017 -0700"
      },
      "message": "Address API review comments for registerReceiver\n\nBug: 37465538\nTest: manual; Verified that Instant Apps can send broadcasts to\nreceivers still via the changed API.\n\nChange-Id: Ib0f3d0c8ee71234288ccecd07e621554eb9b70ac\n"
    },
    {
      "commit": "0d277a7b189c8807d142b69dd8d00b17978a49a5",
      "tree": "6a73a0b00c210a19726535b04535721c95e110bc",
      "parents": [
        "4132f860419584bf4aefa7b6a3a708b25643675b"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Wed Apr 12 16:56:53 2017 -0700"
      },
      "committer": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Wed Apr 19 11:10:53 2017 -0700"
      },
      "message": "Change ANDROID_ID for Instant Apps\n\nANDROID_ID for Instant Apps now has the following properties:\n1) per-app scoped\n2) reset if the user clears the Instant App\n3) remains the same if the Instant App gets upgraded to an installed\napp.\n\nNote that if the user goes instant -\u003e installed_1 -\u003e uninstall -\u003e\ninstalled_2 the ANDROID_ID at installed_1 will not be the same as\ninstalled_2. This was deemed better than the id changing on the upgrade\nstep.\n\nTest: manual\nChange-Id: I532975c50049c94ff80902a897e001dd35a69f9f\n"
    },
    {
      "commit": "345ffa5421f4158b9c30439b9f18aed7b61aaea9",
      "tree": "053479224bf8b05edae510a2f53f8d3f091384cd",
      "parents": [
        "0cb43ef67b5d284f6c0afbca5a50e189355c0ab3"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Apr 18 16:08:41 2017 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Apr 18 16:44:43 2017 -0700"
      },
      "message": "Address API council comments\n\nTest: cookie CTS tests pass\n\nbug:37327624\nbug:37325276\nbug:37323696\n\nChange-Id: I52b10470759e471629ec6772e115df94482eb341\n"
    },
    {
      "commit": "242ba3e997b45ec7ab5f8c40663c9044a13ad31f",
      "tree": "197a4b8005346344d7fca7e37d6417e267ae4f82",
      "parents": [
        "11139e913c3b4897c6ff37606e614d3db1f23418"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Apr 14 15:07:06 2017 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Apr 17 14:22:18 2017 -0700"
      },
      "message": "Turn down the preliminary foreground service API\n\nThe NotificationManager.startServiceInForeground() experiment is over,\nand will not ship as API, so it\u0027s time to tidy up and get rid of it.\n\nBug 36130212\nTest: manual\n\nChange-Id: I834d1ce059aa464ff27f69f5e5d3625cc5e61d8a\n"
    },
    {
      "commit": "801e65905b267014f390439cf8388b6ccc854e18",
      "tree": "6e26fcda9126a50896a01d7ca4b3bfbc4c33e3f5",
      "parents": [
        "80b7a214bac14d48c08abeeb4cdd9499a0f40117"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Wed Apr 12 14:10:12 2017 -0700"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Apr 14 09:49:13 2017 -0700"
      },
      "message": "expose the instant app installer component\n\nBug: 35873804\nTest: TreeHugger\nChange-Id: I4d962927587bb10833bfe3c3db27fdceab668fc3\n"
    },
    {
      "commit": "a47223f99b6b7ade4ae909c458d975eb487062b3",
      "tree": "07506d1f14b0fee6fca92e6779066767d44523b8",
      "parents": [
        "474662da390937a95ed2e3b3acdae00c92be47d8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 30 13:49:13 2017 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 31 10:41:50 2017 -0700"
      },
      "message": "Implement issue #36590595: Add ability to associated a ClipData with JobInfo\n\nYum!\n\nAlso needed to have a Context.revokeUriPermission() variant that is sane,\nso reasonable CTS tests can be written.\n\nTest: new ClipDataJobTest added.\n\nChange-Id: Ia3135ea788a6e32c971bae7dab3a844d0ef4139c\n"
    },
    {
      "commit": "08992ac57e973d6bf32693725ebb341a481e5944",
      "tree": "b766c88e226f2b7705993eeef88984f4a04f5183",
      "parents": [
        "217ecd0729809508c731dc5f49b437fd9681b65e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 21 11:37:06 2017 -0700"
      },
      "committer": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Thu Mar 30 18:31:24 2017 +0000"
      },
      "message": "API refactor: context.startForegroundService()\n\nRather than require an a-priori Notification be supplied in order to\nstart a service directly into the foreground state, we adopt a two-stage\ncompound operation for undertaking ongoing service work even from a\nbackground execution state.  Context#startForegroundService() is not\nsubject to background restrictions, with the requirement that the\nservice formally enter the foreground state via startForeground() within\n5 seconds.  If the service does not do so, it is stopped by the OS and\nthe app is blamed with a service ANR.\n\nWe also introduce a new flavor of PendingIntent that starts a service\ninto this two-stage \"promises to call startForeground()\" sequence, so\nthat deferred and second-party launches can take advantage of it.\n\nBug 36130212\nTest: CTS\n\nChange-Id: I96d6b23fcfc27d8fa606827b7d48a093611b2345\n(cherry picked from commit 79047c62b58fb0a0ddf28e2b90fe4d17e05bc528)\n"
    },
    {
      "commit": "336ae5b6161454304ef09be715505007c7a7da56",
      "tree": "7f084f8db7f450b9ae8d15abf835b6e54c292366",
      "parents": [
        "27cec32496090efd153327f4fc5a5cecc6f59d9b"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Fri Mar 24 15:53:09 2017 -0700"
      },
      "committer": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Tue Mar 28 20:34:55 2017 +0000"
      },
      "message": "Add ACTION_EPHEMERAL_RESOLVER_SETTINGS\n\nThis Intent will be used in Settings to show the settings UI for the\nEphemeral resolver. Settings can get the correct component to send the\nIntent to by calling\nPackageManager.getInstantAppResolverSettingsComponent\n\nBug: 35918998\nTest: Boots\nChange-Id: I0edcf85704f2c19e0ee27f91b6ef057d52e32778\n(cherry picked from commit aa49cb86e6d5f23d82c97db32c848bc4ea2b81bc)\n"
    },
    {
      "commit": "ab53289c593aad60eddbe1ffc73402ac1f92c112",
      "tree": "f88a68831c436cc696172f3b6ec095ef41fba61d",
      "parents": [
        "00de0e644dad9c70f0ed87e9028a14328b08b949"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Wed Mar 08 14:19:49 2017 -0800"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Wed Mar 15 07:31:09 2017 -0700"
      },
      "message": "Add API to mark apps that have an update available\n\nOstensibly for instant apps, we allow play to mark an app as having\nan update available. This will trigger instant app resolution even\nif the instant app is already installed on device.\n\nBug: 35143464\nTest: Manual; launch URI of installed instant app, see it runs w/o resolution. set bit. launch URI of installed instant app, see it runs resolution\nChange-Id: I511df2b2a3eab39377167c770255ccbe02d5dad2\n"
    },
    {
      "commit": "816c83bf037e2284a61ac8e918ff882d162d9321",
      "tree": "007df9d244b5ed887cd3535922aa658efacc31aa",
      "parents": [
        "b7e34d5508b41c421994eb70f96f56e5db7ede74"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Thu Mar 02 10:27:59 2017 -0800"
      },
      "committer": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Tue Mar 07 15:28:03 2017 -0800"
      },
      "message": "Enforce visibleToInstantApps for receivers\n\nInstant apps can only send broadcasts to receivers that are declared in\nthe manifest with android:visibleToInstantApps\u003dtrue or if the app\nregisters a receiver at runtime using the new methods that take\nvisibleToInstantApps.\n\nBug:33350280\nTest: Manually sending broadcasts from Instant Apps only goes to\nreceivers with visibleToInstantApps set to true.\nTest: Receiving a broadcast from within the same app does not require\nvisibleToInstantApps to be set.\n\nChange-Id: I54d79a502ba9c5fd03ede3c09e08afc88fe2775f\n"
    },
    {
      "commit": "31a16551910492321a6f7c291eb33e1458f39f0a",
      "tree": "37af5f1436fffcded16d265c957f2ff173115c09",
      "parents": [
        "b26979f14eb04c4addd67e97dc81d6d8ccd79cc3"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Wed Mar 01 15:08:45 2017 -0800"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Wed Mar 01 16:36:48 2017 -0800"
      },
      "message": "Create PackageManager.isInstantApp API to query whether\na given package name is an instant app.\n\nTest: refactor existing codepaths retained\n\nChange-Id: I6253fe8cc398d6547566d11043bffd1c4ffaa74a\n"
    },
    {
      "commit": "0a4cf4b57f43905be8602737d3fcc9f40997e6a3",
      "tree": "57d355981a54f89f72c2129db3dea66c94ac43ff",
      "parents": [
        "b6ac8f7f09517c87f56eff53a9af423b73fce215",
        "9dcdc8f1879681a87b23656c7ff9ca3b51b6caaf"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Feb 23 13:56:23 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 23 13:56:23 2017 +0000"
      },
      "message": "Merge \"Deprecate TestSuiteBuilder and related classes.\" am: a26000b8f5 am: fd61eb1e39\nam: 9dcdc8f187\n\nChange-Id: Icbc80cc054244f2660814bde4a9dc681b501024f\n"
    },
    {
      "commit": "fd61eb1e3926b6500275addb203dd0eb3892d5b9",
      "tree": "8c3933ab971c034b534d2a77875402bc2ab97de1",
      "parents": [
        "5da6f4fbd1b76b45e4701ec44f2d1f3a50761f16",
        "a26000b8f5c85705d56444e052eb1e775ad5a7e1"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Feb 23 13:44:24 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 23 13:44:24 2017 +0000"
      },
      "message": "Merge \"Deprecate TestSuiteBuilder and related classes.\"\nam: a26000b8f5\n\nChange-Id: Ia9d491bd72f2a9f08838e298aaf4de5de28c7d4f\n"
    },
    {
      "commit": "3600f7b64553587a4829019fcfbd4916fc214ef0",
      "tree": "9286d4611fbca185063f5ab25d152df7b2d9b9d6",
      "parents": [
        "a1d548024dc1c8df6257c804225eb7ff8202c97b",
        "da4597769b5be791c3588581947650a013115877"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Feb 22 15:31:55 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 22 15:31:55 2017 +0000"
      },
      "message": "Merge \"Remove conflicting package information for junit.runner and junit.textui\" am: f3f4775a35 am: 9b5522f8c4\nam: da4597769b\n\nChange-Id: Ibbcb838b9d41391b559a555111ebafce437a5679\n"
    },
    {
      "commit": "9b5522f8c4ab1c503d47e0305a5c6b4db45b9828",
      "tree": "d810cf6622348d6b00a1dd37e639c56e7b13c3ec",
      "parents": [
        "cb47118af13be8efb2d4344d045744f5320ec07d",
        "f3f4775a35d0ba972381e2bcc3c4af8d1fb1f857"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Feb 22 15:24:27 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 22 15:24:27 2017 +0000"
      },
      "message": "Merge \"Remove conflicting package information for junit.runner and junit.textui\"\nam: f3f4775a35\n\nChange-Id: Ie0ca0b2b6b5f06e90f55996625f758521c9039cb\n"
    }
  ],
  "next": "253ad40649242edae625d95e2ae415a1bf27b9fc"
}
