)]}'
{
  "log": [
    {
      "commit": "8aeb59ebcd50a510d024dc082fa17b192074c63d",
      "tree": "b7f3e92f4eebc63df03fd63d35b0eafc18ccc81c",
      "parents": [
        "57b8eb3da0c4692ac4f39a9c73aa090af475d14a"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Jan 10 12:08:23 2017 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jan 18 16:39:34 2017 +0000"
      },
      "message": "Prepare for removal of legacy-test from default targets\n\nIn preparation for removing junit classes from the Android API\nthe legacy-test target will be removed from the\nTARGET_DEFAULT_JAVA_LIBRARIES. This change adds explicit\ndependencies on junit and/or legacy-android-test to ensure that\nmodules will compile properly once it is removed.\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: I13e88297731253420e4e5f5291d503f13a39a156\n"
    },
    {
      "commit": "388f31e16ec2ee366ada595e137bb5300077f43f",
      "tree": "850531fcd4247a188de02edf9ea20a12bdc2feb0",
      "parents": [
        "b3a20ee45a23cfc65fb09f4a4841270fa885518c",
        "7ae809eea6e8e8cc5be42d3269a4902d1c950425"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Jan 18 09:56:45 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 18 09:56:45 2017 +0000"
      },
      "message": "Merge \"Restore legacy types when registering mobile requests\" am: 85f67dc60a am: 47453e01cb am: 1a1a7f6e75\nam: 7ae809eea6\n\nChange-Id: I17e7bae58cc75bd176c57324f446552950e3682e\n"
    },
    {
      "commit": "7ae809eea6e8e8cc5be42d3269a4902d1c950425",
      "tree": "d5eaced0e21a473aa32eb13b1bb8448641978cd6",
      "parents": [
        "c4adc2ce0adb8df274d3e79baba141a6f0e88c40",
        "1a1a7f6e75d68ccf2f4f956e9963a16e1782fe79"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Jan 18 09:51:31 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 18 09:51:31 2017 +0000"
      },
      "message": "Merge \"Restore legacy types when registering mobile requests\" am: 85f67dc60a am: 47453e01cb\nam: 1a1a7f6e75\n\nChange-Id: I9eb1ca8a19cca3a28e81392dbd988e5c2cee02c7\n"
    },
    {
      "commit": "1a1a7f6e75d68ccf2f4f956e9963a16e1782fe79",
      "tree": "369be96129f538dc4f8234e913ec480509321b84",
      "parents": [
        "db19cad1dbc1c9772246b5869188cf12f11b8726",
        "47453e01cb3c39f49fb89436dd4512555e5526e3"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Jan 18 09:46:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 18 09:46:06 2017 +0000"
      },
      "message": "Merge \"Restore legacy types when registering mobile requests\" am: 85f67dc60a\nam: 47453e01cb\n\nChange-Id: Ic849eb5f85fd835fe4615f5a22afec3e569cf005\n"
    },
    {
      "commit": "47453e01cb3c39f49fb89436dd4512555e5526e3",
      "tree": "2d8d5422ca6c49555ba764da7622ab794222e3f8",
      "parents": [
        "8259b9198405e2a9789ba62ce3614c8095b6f460",
        "85f67dc60a808308eb6a0b021f21a638a4cf8ba6"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Jan 18 09:41:00 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 18 09:41:00 2017 +0000"
      },
      "message": "Merge \"Restore legacy types when registering mobile requests\"\nam: 85f67dc60a\n\nChange-Id: I124d28e85711f81216e552bb93dd1994081c9452\n"
    },
    {
      "commit": "dd8e8911c69dd68d268f892373b174bc7b422db8",
      "tree": "a52adf345ba75531b640cad8ea3d8c46169a461d",
      "parents": [
        "32aac7b9c95312cdd7c1e32d01a4fb6c0345f206"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Jan 18 16:08:06 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Jan 18 17:27:31 2017 +0900"
      },
      "message": "Restore legacy types when registering mobile requests\n\nTest: as follows\n    - built (bullhead)\n    - flashed\n    - booted\n    - runtest frameworks-net passes\n    - vanilla wifi to mobile tethering (no DUN)\n    - tested with DUN by:\n        - adding \"dun\" to the APN type\n        - adb shell settings put global tether_dun_required 1\n        - verified the bug exists without this fix\nBug: 32163131\nBug: 34364553\nChange-Id: Idf1a9a2c8191c40abed29e1789f62aefb83ed1ce\n"
    },
    {
      "commit": "cc9b611509dd34c821905e28472fcf896fa54985",
      "tree": "48dc384e2171e87535ea11f7af9cf074e3d93802",
      "parents": [
        "c154018081745573a5be8f53e5b03fb280678e38",
        "545049be250dda1a3c6756f1697632eeabfa3786"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jan 17 06:59:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 17 06:59:06 2017 +0000"
      },
      "message": "Move tests added in n-mr2 into new aosp location. am: e446acf954 am: 88f3295464 am: 4e9ffd6e91\nam: 545049be25\n\nChange-Id: I99dbe36c20f5a33f1607cd2f9c0a66ae3eee1331\n"
    },
    {
      "commit": "c154018081745573a5be8f53e5b03fb280678e38",
      "tree": "4c1ec8463baf2476d9d6af26c4f31348e11294a1",
      "parents": [
        "7f4e1b7ecb51d33c63305b472698c34c0276bcfc",
        "abeb9205fe42553e2a0d9cef1adb7d795a144638"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jan 17 06:57:59 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 17 06:57:59 2017 +0000"
      },
      "message": "Merge \"Start of UpstreamNetworkMonitor unittests\" am: f9a28d7ba4 am: 4bb6f5a418 am: 5eba88cf44\nam: abeb9205fe\n\nChange-Id: Ib1f2f813eec62e702455d60946f7d4d789ff9c88\n"
    },
    {
      "commit": "545049be250dda1a3c6756f1697632eeabfa3786",
      "tree": "b52462f38370c771750dda1c763b4d6b94a8d374",
      "parents": [
        "abeb9205fe42553e2a0d9cef1adb7d795a144638",
        "4e9ffd6e915467b788d07e4fbe8996a32d16e194"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jan 17 05:19:56 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 17 05:19:56 2017 +0000"
      },
      "message": "Move tests added in n-mr2 into new aosp location. am: e446acf954 am: 88f3295464\nam: 4e9ffd6e91\n\nChange-Id: I3b4f9303c5d4495e4b8556b1db6d5cad5543a10c\n"
    },
    {
      "commit": "4e9ffd6e915467b788d07e4fbe8996a32d16e194",
      "tree": "f59a40f5b1c8ff1fbd3a5c5ee9f12053429b1fcf",
      "parents": [
        "5eba88cf448bab966e6be861d1259bd2de82109d",
        "88f3295464e1168276e7e5d7c3ba588b10ea2c89"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jan 17 05:08:24 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 17 05:08:24 2017 +0000"
      },
      "message": "Move tests added in n-mr2 into new aosp location. am: e446acf954\nam: 88f3295464\n\nChange-Id: Iaf574661aa658df1285f69bfad62285bd531206a\n"
    },
    {
      "commit": "88f3295464e1168276e7e5d7c3ba588b10ea2c89",
      "tree": "3c5e2bcff5b78e530f4f311d5b65193ec4578309",
      "parents": [
        "4bb6f5a4188c8bdaa085d77fc541d97e48c13d42",
        "e446acf9548f7244ee50ba9fbe767fecbcc5d0ed"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jan 17 05:01:49 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 17 05:01:49 2017 +0000"
      },
      "message": "Move tests added in n-mr2 into new aosp location.\nam: e446acf954\n\nChange-Id: I69c76aaf4c8d03ce4b33d9c16c47f2c83141e255\n"
    },
    {
      "commit": "5eba88cf448bab966e6be861d1259bd2de82109d",
      "tree": "b29ef851258b9b676763529d0bcb4d33379635bc",
      "parents": [
        "cb44b8d85aa6e998b7ab7d752c0b2772fe12ba8d",
        "4bb6f5a4188c8bdaa085d77fc541d97e48c13d42"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jan 17 04:51:48 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 17 04:51:48 2017 +0000"
      },
      "message": "Merge \"Start of UpstreamNetworkMonitor unittests\" am: f9a28d7ba4\nam: 4bb6f5a418\n\nChange-Id: I6a9106fd4fef85451104593ab8c37d4539cb9223\n"
    },
    {
      "commit": "5511f7cfc262cedadcf892b0116d9ddf7c5b4a85",
      "tree": "79cf6dbcfc7d7519f31c352510c7cadda6aa2930",
      "parents": [
        "f9a28d7ba4d2a6a060df0eab14b47c5ca584cda0",
        "e446acf9548f7244ee50ba9fbe767fecbcc5d0ed"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 17 04:49:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 17 04:49:08 2017 +0000"
      },
      "message": "Merge \"Move tests added in n-mr2 into new aosp location.\""
    },
    {
      "commit": "4bb6f5a4188c8bdaa085d77fc541d97e48c13d42",
      "tree": "80d1f45d4d93ea59745aa104cdb0d7e34b5dce42",
      "parents": [
        "fcfa8c02ad27dc8a45fb590d8317fb785ed8e979",
        "f9a28d7ba4d2a6a060df0eab14b47c5ca584cda0"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jan 17 04:46:17 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 17 04:46:17 2017 +0000"
      },
      "message": "Merge \"Start of UpstreamNetworkMonitor unittests\"\nam: f9a28d7ba4\n\nChange-Id: I2dade79427530a04c8e222e4ab2bf26e79ddd578\n"
    },
    {
      "commit": "885a9098cf19eaee5a164c5ca771aec5926f2efd",
      "tree": "43cca1d095323dba260b89b66d7877cd76a449e0",
      "parents": [
        "8df5bd1028ca34b34202b81775505fb016c9b2da"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Jan 16 16:27:22 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jan 17 11:08:29 2017 +0900"
      },
      "message": "Start of UpstreamNetworkMonitor unittests\n\nTest only the ConnectivityManager request and callback registering\nand releasing.  Testing behaviour triggered by activating these\ncallbacks will be in a separate change.\n\nTest: runtest frameworks-net\nBug: 32163131\nChange-Id: Ibfe66bbe2e61d81e8f13ac3b98e000d0d4534efa\n"
    },
    {
      "commit": "84f43a3e150dc9c4e83f8333ca326318fa5e694d",
      "tree": "5aba5dfb0082c19a4b32020360fda17662b213ce",
      "parents": [
        "a5bf819216d901afcf5bd71dc5f814ed582a4614",
        "1af06a6e098a0bd81afcec27a56950d927049236"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Jan 16 08:28:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 16 08:28:47 2017 +0000"
      },
      "message": "Merge \"IP connectivity metrics: fix tests\""
    },
    {
      "commit": "e446acf9548f7244ee50ba9fbe767fecbcc5d0ed",
      "tree": "b5b5fb4d42d00a839d83cad2851b3b39be1d1a81",
      "parents": [
        "8df5bd1028ca34b34202b81775505fb016c9b2da"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Dec 16 16:19:34 2016 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Jan 16 15:24:31 2017 +0900"
      },
      "message": "Move tests added in n-mr2 into new aosp location.\n\nTest: runtest frameworks-net\nChange-Id: I3ca0d7e01a3f31be05d4a1a72a95c7e37a0a567e\n"
    },
    {
      "commit": "a5bf819216d901afcf5bd71dc5f814ed582a4614",
      "tree": "c8bef717dc396051dc2b2af53d93e9eccc516cba",
      "parents": [
        "e8264a92ffed883139b7ec882845fba07c17ac2e"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Dec 20 09:57:43 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Jan 16 15:15:26 2017 +0900"
      },
      "message": "Stricter NetworkNotificationManagerTest\n\nThis patch changes NetworkNotificationManagerTest to populate extraInfo\nof NetworkInfo in order to catch regressions in malformed format Strings\nof log statements in NetworkNotificationManager.\n\nTest: verified that the test fails when reintroducing the format String\nbug.\nBug: 33737715\n\n(cherry picked from commit a865790a5b30a2d5e29e3d443e7b02a5d8aa01a4)\n\nChange-Id: Ic2f23e860a17cb83b90edcfd2ba365134cacfe36\n"
    },
    {
      "commit": "1af06a6e098a0bd81afcec27a56950d927049236",
      "tree": "2c18a2c79237008e6e005a3e26a91ccced86ed09",
      "parents": [
        "e96cbd277352ef3001a0acca41a270671e76fba9"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Jan 16 14:42:56 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Jan 16 14:42:56 2017 +0900"
      },
      "message": "IP connectivity metrics: fix tests\n\nChange 4e89a026292338761838b33fc83b250f3519819c did not update the unit\ntests checking serialization of ipconnectivity.proto protobufs.\n\nThis patch updates the tests expectations to make them pass again\n\nTest: $ runtest frameworks-net\nBug: 34232829\nChange-Id: Iccc4e1a7714c9ce1eba995dc47a2961216efc87d\n"
    },
    {
      "commit": "4e1619f034b256984ea85b4d89aa2e16ac6f795c",
      "tree": "0f4200b248d566bcfb192fdc95043c0e8b9f9c49",
      "parents": [
        "dfe8f5dc13f39b87ac6107c1a3b24db9b601597b"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Dec 20 17:05:06 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Jan 16 11:15:04 2017 +0900"
      },
      "message": "ConnectivityServiceTest: some fixes in CallbackInfo\n\n- CallbackInfo becomes a static class so that it can be instantiated\n  and looked at more easily than before.\n- CallbackInfo gains hashCode() because it has equals().\n- effectively final field are qualified final\n- fixes bug when polling the next callback: poll() on a LinkedBlockingQueue\n  returns null when timing out, which was not failing the test cleanly.\n\nTest: ConnectivityServiceTest passes\nBug: 32561414\nChange-Id: I64d382a35fe83f21bded98e6906c1ec70a8f1085\n"
    },
    {
      "commit": "ec4e0b075f53ac83cb03db07c00a67ea0f1e3a34",
      "tree": "cf1b7c811636996a41438839fc69f8d48058f407",
      "parents": [
        "1fe396f67de519330de708514a9c4262e404f4f3",
        "6337f4fb27836cdb9055c6e79d6fc3d62d7c9e67"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 09 18:50:51 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 09 18:50:56 2017 +0000"
      },
      "message": "Merge \"Create a new jank test to measure HW layer resize performance\""
    },
    {
      "commit": "6337f4fb27836cdb9055c6e79d6fc3d62d7c9e67",
      "tree": "5807a64dd19da8baeca5ddbfd365f74649db2912",
      "parents": [
        "202b862be0a552936a8e67960178c05d51de8841"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Thu Jan 05 10:24:54 2017 -0500"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Fri Jan 06 14:28:56 2017 -0500"
      },
      "message": "Create a new jank test to measure HW layer resize performance\n\nWrite a jank test that is animating height and width of a View\nbacked by a HW layer.\n\nTest: built angler-userdebug and ran UiBench jank tests.\nChange-Id: I69eccb73b6fb887549506c80590892665051ee2f\n"
    },
    {
      "commit": "26c0dfed7a0cd54abafdd0ccbb5b757506d51c76",
      "tree": "4850c302aac142f72b57b4ea946ca463744bb074",
      "parents": [
        "aedb707aa3dbc1e8ca9073247f2b6e60205a1893"
      ],
      "author": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Wed Dec 14 14:42:30 2016 -0800"
      },
      "committer": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Fri Jan 06 09:11:02 2017 -0800"
      },
      "message": "Support for WindowContainer controllers and listeners\n\n- WindowContainerController class allows a component outside window manager\nto create a window container and communicate directly with it to make\nchanges. For example, the ActivityRecord class in activity manager uses the\nAppWindowContainerController class to create and communicate with\nAppWindowToken window container class which is its counterpart on the window\nmanager side.\n- WindowContainerListener interface allows a component outside WM to get\nnotified of changes to a window container. For example, the ActivityRecord\nclass in AM implements the AppWindowContainerListener interface to get\nnotified of changes to the AppWindowToken container.\n\nBug: 30060889\nTest: Existing tests pass and manual testing.\nTest: bit FrameworksServicesTests:com.android.server.wm.WindowContainerControllerTests\nTest: bit FrameworksServicesTests:com.android.server.wm.WindowContainerTests\nChange-Id: I2896bfa46a80b227052528c7da8cf4e56beab4bc\n"
    },
    {
      "commit": "87a66afec288823eb71c08f72732d926fced7707",
      "tree": "ebee1ba3ba2a94fe5aa7ed28853771cf9abc3bff",
      "parents": [
        "8732a47a9d94dd591212751ad256786d04d594ea",
        "0d4a398b7846f26e4452180915ecb5a9d4566148"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 15 16:09:15 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 15 16:09:18 2016 +0000"
      },
      "message": "Merge \"IP Connectivity metrics: add connect() statistics\""
    },
    {
      "commit": "0d4a398b7846f26e4452180915ecb5a9d4566148",
      "tree": "f2eed8cae12d4d8b41d1c9e8bad3e419901fc8e3",
      "parents": [
        "c9925480f1c772f5e89f3f8fffecc5c6c7578246"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Nov 25 11:24:22 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Dec 15 22:53:53 2016 +0900"
      },
      "message": "IP Connectivity metrics: add connect() statistics\n\nThis patch adds a ConnectStats class to aggregate connect() statistics\ngathered in NetdEventListenerService. ConnectStats is uploaded once a\nday by IpConnectivityMetrics.\n\nTest: $ runtest frameworks-net + new unit test\nBug: 32198976\nChange-Id: Iea63339035415513a5ba0ff4b8f4d79f75fc652d\n"
    },
    {
      "commit": "fb2609d3eee1c7a4dda889c000f32183a044978a",
      "tree": "dbef8c88ec5441dc8151ff918e8eb0380f81f50a",
      "parents": [
        "e1cbf15f1ad7f2f7e1cc1e96e6a82c3fa2f70bdf"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Dec 08 09:36:52 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Dec 15 10:31:38 2016 +0900"
      },
      "message": "Network notifications: revamp keying scheme\n\nThis patch changes the (tag: String, id: Int) keying scheme for network\nnotifications so that TRON notification counters can count network\nrelated notifications unambiguously.\n\nTRON instruments all notifications shown for package \"android\" as well\nas user interactions with these Notifications. These counters are\ngrouped by id. However the network notifications (\"no internet\" dialog,\n\"captive portal sign in\" dialog, ...) use a static tag and a dynamic id\nfor keying notifications, preventing the counters to correctly\naggregate. In addition there is also the risk of collision with other\nSystemUi notification ids not managed by NetworkNotificationManager.\n\nIn order to make the TRON counters useful for network notifications,\nthe id is now encoding the network notification type in a stable way\nwhile the tag is used to uniquely identify network notifications.\n\nTest: change covered by previously added new unit tests.\nBug: 32198726\nBug: 33030620\nChange-Id: I1201d1d4fab8183dd83449c2afb2c35cfece883f\n"
    },
    {
      "commit": "28d240c72deac0994eb50daa9397e226638043d4",
      "tree": "dba3edc190430d18e5ecb152d286192a99db49d4",
      "parents": [
        "ae265025abab57cd9929f66538f31f668d98aa1e",
        "80df43ea8a4286f2b7e0678be35dbca3f16f3766"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Dec 13 03:56:50 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 13 03:56:53 2016 +0000"
      },
      "message": "Merge \"Fix IP connectivity metrics tests\""
    },
    {
      "commit": "74b45cd4dc5885d2f62c5b902ed55286d80085f5",
      "tree": "9fb194284f4ee85a25c61679b550c60783451759",
      "parents": [
        "915d8441f8f127a12247f79b953336007214b1fe",
        "74264329da5c52fbbafc1d20457056fdeabe19dc"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Dec 13 02:23:02 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 13 02:23:05 2016 +0000"
      },
      "message": "Merge \"Unit tests for NetworkNotificationManager\""
    },
    {
      "commit": "2894d0ac51d6dbcbdf5025f01de3e9fedc10c877",
      "tree": "27709d30e9cc3325e23281e4c9b5dc3c4596e336",
      "parents": [
        "fab84ceb8cdd5f66e5dd3b0c873c2882e5936d30",
        "72919d2c310db04fdb860e926ccb0bfe6e3aef08"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 13 00:56:03 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 13 00:56:09 2016 +0000"
      },
      "message": "Merge \"Untangle creation of Task from addition of AppToken in WM.\""
    },
    {
      "commit": "72919d2c310db04fdb860e926ccb0bfe6e3aef08",
      "tree": "ed6a621c4f23032516a822fc97816070113fa700",
      "parents": [
        "00f9a1a4735f8ba6b40cee5294a034bd60b28df4"
      ],
      "author": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Thu Dec 08 18:58:50 2016 -0800"
      },
      "committer": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Mon Dec 12 15:09:03 2016 -0800"
      },
      "message": "Untangle creation of Task from addition of AppToken in WM.\n\nMakes it easier to follow what is going on and also clean-up in\npreparation of stand way for AM to interact with containers in WM.\n\nTest: Existing tests pass and manual testing\nChange-Id: I91754b6d974dce2f696453cdaed175efb0f10c73\n"
    },
    {
      "commit": "5297f03d90ec1b9e36a4d91efe0e31df5f75540f",
      "tree": "206d83ebf3c3b129a84f7d0ba1cd00e406a3e76f",
      "parents": [
        "dae2232ca7065f866f1fb7a9ab0b0a2880f0875e",
        "b8feba10f4fc86a2bc31f56a1757632f0292f38f"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Mon Dec 12 18:18:58 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 12 18:19:02 2016 +0000"
      },
      "message": "Merge \"Default to not allowing cleartext traffic for ephemeral apps\""
    },
    {
      "commit": "cfcc1cb7bf9caae440bf7c2c93efb43c9f90aa73",
      "tree": "3c115e38f7982417eb8e33b0f04f20aab6e8449b",
      "parents": [
        "5d0f28c7fdd8432c41ed38659d920fa9fad291fb"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Nov 04 16:06:34 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Dec 09 14:35:05 2016 +0900"
      },
      "message": "DO NOT MERGE: frameworks-test: adding missing @SmallTest\n\nThis activates all frameworks-test tests in runs of the continuous\nplatform tests.\n\nTest: $ runtest frameworks-net passes (expect Tether\nBug: 32561414\n(cherry picked from commit fa8a6f6220d1a0027ba7969c2d3f72690ddc6495)\n\nChange-Id: I7b0706a7e3368f971d508388e8ad4afc5de9d646\n"
    },
    {
      "commit": "5d0f28c7fdd8432c41ed38659d920fa9fad291fb",
      "tree": "1013060c4fbe931aca7b2b72a2111fe61d99b618",
      "parents": [
        "744b02069d7589dc192b19fac6c3e7d62d02e88a"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Oct 31 15:04:37 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Dec 09 14:34:39 2016 +0900"
      },
      "message": "DO NOT MERGE: Netd events: record connect() success/errno\n\nTest: $ runtest frameworks-net pass\nBug: 32198976\n\n(cherry picked from commit 8b06bcdfd24100302818ae0e11ee751dd813d5cf)\n"
    },
    {
      "commit": "de7f7d195eec64802b7b6eee819c699f1a7d6951",
      "tree": "5e9250b11197e50e7340d7bcf2588f0443898d1e",
      "parents": [
        "963e8ddf6d5ea3bc34216fa03fe24402bf13940a"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Thu Jun 30 11:19:20 2016 +0100"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Dec 09 14:23:10 2016 +0900"
      },
      "message": "DO NOT MERGE: Show notification for always-on app VPN\n\nThis is the same notification as the one shown during legacy lockdown\nmode, sans the \u0027reset\u0027 button.\n\nThe notification is only shown during times when VPN has not yet\nestablished or has failed, for example during boot or after a crash.\n\nBug: 29123115\n\n(cherry picked from commit 1a405fe300950d6ceae2166fd074b596d8110dbe)\n\nChange-Id: I929a05c24df01e21415535a333bb14ac4b790a9d\n"
    },
    {
      "commit": "02428988ad90a2bd294b9ce752c2fced5b649519",
      "tree": "127c4d6944786336427d2820c2e8110f7fad94a5",
      "parents": [
        "53d83d51424a496978d2ff2d86845a2284515712"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Sat Dec 03 02:41:05 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Dec 09 13:59:19 2016 +0900"
      },
      "message": "DO NOT MERGE: APF: also drop any ICMPv6 RSs\n\nTest: new unit test + $ runtest franeworks-net\nBug: 32833400\n\n(cherry picked from commit f98182ef5e80ede5de7f2c2a5f40fc92a46c9704)\n\nChange-Id: Ifaf6e778c811c7d865c790a293b1fce3f43cad1c\n"
    },
    {
      "commit": "53d83d51424a496978d2ff2d86845a2284515712",
      "tree": "94963686c3f8f79cb065b7f30871275539d63f0c",
      "parents": [
        "cbf8ff83a8b342e6ebeaa83794dace3c6d0b1488"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Nov 15 13:42:34 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Dec 09 13:59:19 2016 +0900"
      },
      "message": "DO NOT MERGE: ConnectivityServiceTest: fix testAvoidBadWifiSettings\n\nThis patch introduces an assertEventuallyThat helper function in\nConnectivityServiceTest which given a boolean function retries until the\nfunction returns true or until a maximum retry time is reached.\n\nThis function is used to fix flakyness of testAvoidBadWifiSetting where\nthe Message posted by reevaluate() could reach the Handler\u0027s\nMessageQueue after waitForIdle takes effect, resulting in the test to\nfail.\n\nInstead of fixing the flakyness by introdcing hard sleep times,\nassertEventuallyThat is used to reduce the overall test time.\n\nWith this change the test has been observed to pass with 100% success\nrate over 50000 invocations.\n\nTest: $ runtest frameworks-net\nBug: 32561414\n\n(cherry picked from commit 99c8294ef0c7a720364abb5884063e0a9d1bb5fe)\n\nChange-Id: If41a24989d5f65aeb439f68741f511b5eb53b18d\n"
    },
    {
      "commit": "cbf8ff83a8b342e6ebeaa83794dace3c6d0b1488",
      "tree": "dfac1945d450369ab269eb8e2ac71074cf7d9df8",
      "parents": [
        "dda938a698a17b2943bbe78f6631a26dedabf28a"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Nov 15 11:25:52 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Dec 09 13:59:18 2016 +0900"
      },
      "message": "DO NOT MERGE: Fix ConnectivityServiceTest testRequestBenchmark\n\nThis patch fixes flakyness of testRequestBenchmark by adjusting time\nlimit for callback registration from 100ms to 180ms, and time limits for\nonAvailable and onLost triggers from 30ms to 40ms.\n\nWith these timeouts the test succeeds 100% over 5000 iterations.\n\nWhen using 150ms for registration timeout, running the test 5000 times\nfails 2 times.\n\nWhen using 30ms for onLost timeout, running the test 5000 times fails\n1 times.\n\nIn addition, this patch also cleans testRequestBenchmark and uses the\nmore stable SystemClock.elapsedRealtime() for duration measurements.\n\nTest: $ runtest frameworks-net\nBug: 32561414\n\n(cherry picked from commit 38be57b438a0c1754091f045317db2049304e16f)\n\nChange-Id: I196ab9ef7f5abe456a783eed65db09279d2ecb8c\n"
    },
    {
      "commit": "f99a33a1b4599f6297faa316f408b58deebabefb",
      "tree": "19c68d160853dc500200d1952cbe7a0539954d02",
      "parents": [
        "05ad47add8796880c5ba18d55ab6d5221f3e708d"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Oct 18 10:36:33 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Dec 09 11:21:31 2016 +0900"
      },
      "message": "DO NOT MERGE: IpConnectivityMetrics: rate limit ApfProgramEvents\n\nThis patch uses the previously introduced TokenBucket to rate limit\nApfProgramEvents, still allowing for burst of ApfProgramEvents when a\nnew interface is set up (due to ipv4 provisioning, multicast lock, ipv6 RAs\ntriggering new APF program events in short amounts of time).\n\nTest: new test in IpConnectivityMetricsTest\nBug: 1550402\n\n(cherry picked from commit e1c173d2240a8eedf7685c9371087dc047a6931f)\n\nChange-Id: Idb640dec13ba64180985544b9709a586af66eb6e\n"
    },
    {
      "commit": "8c9e4b68f09c92f7f1d26916bbac7014c45f5d49",
      "tree": "8787ac73edd5795e1e0d8230c8c5e109d040a45b",
      "parents": [
        "b55bf38351fc06d267735e8e377d4049c2a7b5d3"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Oct 19 11:17:28 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Dec 09 11:21:26 2016 +0900"
      },
      "message": "DO NOT MERGE: IpConnectivityMetrics reads buffer size in settings\n\nTest: IpConnectivityMetricsTest passes. Also manually changed the new\nsetting and verified the buffer size is as expected after flushing the\nbuffer.\nBug: 32198637\n\n(cherry picked from commit 05686dbb6b965eb1a54591d2ed2334337886c6ee)\n\nChange-Id: Iefbeac3a688b260fb3f92dfe0bfd9db28e26749d\n"
    },
    {
      "commit": "9df2ae138b9aa0f952fe742efa6e673e6bb02de1",
      "tree": "2deefe5debfe49c9013d55be33dd521787a30ba4",
      "parents": [
        "a8c2c229d734cc5c94aafcdaea06824bcb668c2c"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Oct 13 13:16:16 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Dec 09 11:21:11 2016 +0900"
      },
      "message": "DO NOT MERGE: IpConnectivity metrics: add version number\n\nThis patch adds a version field to ipconnectivity.proto and populates it\nto 2, which is the logical version number for NYC-MR2.\n\nTest: IpConnectivity{EventBuilder,Metrics}Test pass\nBug: 32127906\n\n(cherry picked from commit d680d4c856f54bea0c60dea74ba4204822391e49)\n\nChange-Id: If8f167c0dc4c1abe0e235e2adfd131168a4ddc52\n"
    },
    {
      "commit": "912bebeb7488f498954282a1eb82a4b641e6418e",
      "tree": "7c11751a6f0f7056c6aa759bfd42a01b8379a63c",
      "parents": [
        "ea98e436002a8f2c51370edc134c9e3a137b9cc5"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Dec 07 16:36:15 2016 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Dec 08 11:22:31 2016 -0800"
      },
      "message": "Fix window copy for rotation \u003d 90/270\n\nBug: 33421965\nTest: Manual via PixelCopyWindow test in HwAccelerationTest\nChange-Id: I2a59fd6a26499635a22444e124cd1ec6f82f6e31\n"
    },
    {
      "commit": "bf3b1bad15f45033d409669ac20e4b4e597065fd",
      "tree": "d506c6a98c18805500f4dbdd9dba124f6072e100",
      "parents": [
        "5d2654124e9e77dbda102a4435595c552cbc8e36"
      ],
      "author": {
        "name": "Etan Cohen",
        "email": "etancohen@google.com",
        "time": "Thu Oct 27 15:05:50 2016 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Dec 08 17:13:37 2016 +0900"
      },
      "message": "DO NOT MERGE: [CS] Remove timeout event after first available\n\nGuarantees that timeouts are only delivered if a network never\nbecomes available. Once a network is available the timeout is\ncanceled.\n\nBug: 31402633\nTest: all timeout related unit tests pass (new one added)\n\n(cherry picked from commit 681fcda5896fd6c94f8a543ef9983c0a0644e87e)\n\nChange-Id: I7cd3086544c881915fc6dbf14b87a24ab0cd8748\n"
    },
    {
      "commit": "5d2654124e9e77dbda102a4435595c552cbc8e36",
      "tree": "fe095d44e95d9fbab510c95a99818baafc38b511",
      "parents": [
        "5bce5a16b17498981253d7a2d1a490667cd71798"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Nov 02 13:43:22 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Dec 08 17:13:36 2016 +0900"
      },
      "message": "DO NOT MERGE: ApfTest: tag tests with @SmallTest or @MediumTest\n\nTest methods not tagged with @{Small,Medium,Large}Test will not appear\nin the Android Platform Continuous Testing dashboard.\n\nTest methods tagged with @LargeTest will not be run in the Android\nPlatform Continuous Testing dashboard.\n\nTest: ApfTest passes ($runtest frameworks-net)\nBug: 31479480\n\n(cherry picked from commit 4195c28347cc100954f83c3c92b4dde4673f8608)\n\nChange-Id: Ia215fc8e2ccc61f6223c24fdf390e1e759de302f\n"
    },
    {
      "commit": "5bce5a16b17498981253d7a2d1a490667cd71798",
      "tree": "b111bc3d2a7efdfb631c928bda7f633620ca2361",
      "parents": [
        "7ceef950a02b22bdf90609bdab8119b4bcd88edf"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 17:45:55 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Dec 08 17:13:36 2016 +0900"
      },
      "message": "DO NOT MERGE: Unbreak TetherInterfaceStateMachineTest.\n\nThis was broken by the implementation of IPv6 tethering, which\nrelies on various private classes which end up calling unmockable\nfinal classes like NetworkInterface.\n\nMaking everything public like this is almost certainly not the\nbest way of fixing this test, but on the other hand there is\nvalue to the test continuing to pass.\n\nTest: runtest frameworks-net  # Everything passes.\nTest: IPv6 tethering continues to work.\n\n(cherry picked from commit 7e0eeca8ba4063d0d35dda9a8dfcc612e45efb87)\n\nChange-Id: I8a3cf466871c026f4ae0f5cfa73071338cdf5b7e\n"
    },
    {
      "commit": "7ceef950a02b22bdf90609bdab8119b4bcd88edf",
      "tree": "315c20d9996fdd5aa0ec8342bd09b470925e9a85",
      "parents": [
        "3c295b59f5767904656235db48692906148ab631"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 12:48:36 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Dec 08 17:13:35 2016 +0900"
      },
      "message": "DO NOT MERGE: Move the connectivity tests to frameworks/base/tests/net.\n\nThis will give us a good place to put all the networking tests.\n\nFix: 31479480\nTest: adb  shell am instrument -w -e notClass com.android.server.connectivity.tethering.TetherInterfaceStateMachineTest \u0027com.android.frameworks.tests.net/android.support.test.runner.AndroidJUnitRunner\u0027  # PASS\n\n(cherry picked from commit ecc986d430f4b8158f177ed97d2edb741f11ff71)\n\nChange-Id: I993eeaa5dec001c39389023f355f506129b356e7\n"
    },
    {
      "commit": "3c295b59f5767904656235db48692906148ab631",
      "tree": "a23987ebbc62803911eda2a59d628ed41db2f68e",
      "parents": [
        "b8df76e413d0b8235d0bd71adf8f368f00391fcb"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 12:56:03 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Dec 08 17:13:35 2016 +0900"
      },
      "message": "DO NOT MERGE: De-guava BroadcastInterceptingContext and move it to testutils.\n\nRemoving the static dependency on guava reduces test compile time\nby about 20 seconds on a Z840, thus substantially speeding up the\ncompile/test cycle.\n\nMake FutureIntent public instead of package-private because it is\nused directly by NetworkPolicyManagementServiceTest, which as of\nthis CL is now in a different package.\n\n(cherry picked from commit 281a17c9580de5c9898be7d9654d428801976511)\n\nTest: runtest frameworks-services -c com.android.server.ConnectivityServiceTest  # PASS\nTest: runtest frameworks-services -c com.android.server.NetworkPolicyManagerServiceTest  # PASS\nTest: runtest frameworks-services -c com.android.server.net.NetworkStatsServiceTest  # PASS\nTest: runtest frameworks-services -c com.android.server.NetworkManagementServiceTest  # Already failing.\nBug: 31479480\nChange-Id: Ifab32c9214e9caab71dbf93b3d3ca88df6f49636\n"
    },
    {
      "commit": "b8df76e413d0b8235d0bd71adf8f368f00391fcb",
      "tree": "72f4a9f8aba8f92392b957b795fef676f64709f5",
      "parents": [
        "5d540d141027d818d1beb8b030d35ee9489b2e8a"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 12:37:38 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Dec 08 17:13:34 2016 +0900"
      },
      "message": "DO NOT MERGE: Move FakeSettingsProvider to a common location.\n\n(cherry picked from commit 7df1a82802cdf842d07a86a80383c7d5ea7ae53a)\n\nTest: runtest frameworks-util -c com.android.internal.util.test.FakeSettingsProviderTest\nTest: runtest frameworks-services -c com.android.server.ConnectivityServiceTest\nTest: runtest frameworks-services -c com.android.server.retaildemo.PreloadAppsInstallerTest\nTest: runtest frameworks-services -c com.android.server.retaildemo.RetailDemoModeServiceTest\nBug: 31479480\nChange-Id: I8d4d4de2937012dd33924f53e68f96241a9b2b4f\n"
    },
    {
      "commit": "74264329da5c52fbbafc1d20457056fdeabe19dc",
      "tree": "9df66f8ff29027bfa1094337f994f2dbfc5fae84",
      "parents": [
        "36ae71194f5f3b7f692e51783e4de63df0d9b12f"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Dec 07 14:49:55 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Dec 08 09:54:49 2016 +0900"
      },
      "message": "Unit tests for NetworkNotificationManager\n\nTest: new unit test, no functional changes.\nBug: 32198726\nChange-Id: I7c371ee547b36531924df34846c26f56a7f2dd7a\n"
    },
    {
      "commit": "b8feba10f4fc86a2bc31f56a1757632f0292f38f",
      "tree": "483a859351d1431d82628c86e95f65eac5c96127",
      "parents": [
        "5026cabbe17645bfd978a1d724153bd449b89811"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Tue Dec 06 10:26:29 2016 -0800"
      },
      "committer": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Wed Dec 07 13:17:41 2016 -0800"
      },
      "message": "Default to not allowing cleartext traffic for ephemeral apps\n\nTest: NetworkSecurityPolicy.isCleartextTraffic permitted returns the\nexpected defaults.\nChange-Id: I7d6577f8461bbf1f44eb21b4d813dba1746449fa\n"
    },
    {
      "commit": "579e3667e39f10dce341933ca706db568e9f0ce7",
      "tree": "96db6a1ce755cf783b1097b372a657775b156ee9",
      "parents": [
        "e70ef235fbe4f38ab2c76da45027b16fe4635210",
        "91e2e7f4603d0ae9995ead6bbdb556eef9764f40"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Dec 06 20:13:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 06 20:13:49 2016 +0000"
      },
      "message": "DO NOT MERGE: Add TouchLatency test\nam: 91e2e7f460\n\nChange-Id: I1eeed0e4aea8dbe2d963b38cfe9d79449e1a17d2\n"
    },
    {
      "commit": "80df43ea8a4286f2b7e0678be35dbca3f16f3766",
      "tree": "d4a127c79d55623dcb1e8d8fcc3cfd0075da59e7",
      "parents": [
        "7c3a7869218216fceccb7fba983bc022e556df21"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Nov 24 11:28:06 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Dec 06 11:56:23 2016 +0900"
      },
      "message": "Fix IP connectivity metrics tests\n\nSo that test assumptions match previous changes in ipconnectivity.proto.\n\nThis patch also tags metrics tests with @SmallTest.\n\nTest: $ runtest frameworks-net\nBug: 32561414\nBug: 32198976\nChange-Id: Id58baf6eb9ddf0e10266e9150cb7688dd3136953\n"
    },
    {
      "commit": "91e2e7f4603d0ae9995ead6bbdb556eef9764f40",
      "tree": "7abc768e5f9aa6f06bb72dddd228fa167b29f2ad",
      "parents": [
        "f7964be938338380654aaa41317b28335ed19084"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 08 12:25:59 2016 -0700"
      },
      "committer": {
        "name": "Yuanlang Song",
        "email": "yuanlang@google.com",
        "time": "Tue Dec 06 01:23:43 2016 +0000"
      },
      "message": "DO NOT MERGE: Add TouchLatency test\n\nChange-Id: Ic3a788f6b06bf6477ab23b183fb8c76ae8870b6b\n(cherry picked from commit d136ce902c0be4a0cfb8e9d1288ba931ceaf88b4)\n"
    },
    {
      "commit": "f98182ef5e80ede5de7f2c2a5f40fc92a46c9704",
      "tree": "35029f73abd5f23db840e93052e1c2a724e4d051",
      "parents": [
        "8fdc5ca042f08e741b7fad44772073dd6f57cf04"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Sat Dec 03 02:41:05 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Sat Dec 03 14:38:58 2016 +0900"
      },
      "message": "APF: also drop any ICMPv6 RSs\n\nTest: new unit test + $ runtest franeworks-net\nBug: 32833400\nChange-Id: Ibd7ce2e3565eab74043fe9604fe2b23abd53a2eb\n"
    },
    {
      "commit": "42e55d81bd031605d8ad93196df832713f3bfa9f",
      "tree": "b73435f7c1610cbca01623685e38cfa77a519491",
      "parents": [
        "7149a23c2bf05161ef9a92ffc6a7489b53178c0d",
        "99c8294ef0c7a720364abb5884063e0a9d1bb5fe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 24 03:56:58 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 24 03:57:01 2016 +0000"
      },
      "message": "Merge \"ConnectivityServiceTest: fix testAvoidBadWifiSettings\""
    },
    {
      "commit": "81981fe852a85999b2403505edc343feaeefe7dd",
      "tree": "3029c35f818bf362824252c6f4b7a6510513fbd6",
      "parents": [
        "3e416cf4a8d8c4c4722095979f4cc44a397e7807",
        "38be57b438a0c1754091f045317db2049304e16f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 23 11:24:12 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 23 11:24:15 2016 +0000"
      },
      "message": "Merge \"Fix ConnectivityServiceTest testRequestBenchmark\""
    },
    {
      "commit": "99c8294ef0c7a720364abb5884063e0a9d1bb5fe",
      "tree": "93c9a8af8f860dae51cbef4faae4efb94b441418",
      "parents": [
        "38be57b438a0c1754091f045317db2049304e16f"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Nov 15 13:42:34 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Nov 23 18:29:52 2016 +0900"
      },
      "message": "ConnectivityServiceTest: fix testAvoidBadWifiSettings\n\nThis patch introduces an assertEventuallyThat helper function in\nConnectivityServiceTest which given a boolean function retries until the\nfunction returns true or until a maximum retry time is reached.\n\nThis function is used to fix flakyness of testAvoidBadWifiSetting where\nthe Message posted by reevaluate() could reach the Handler\u0027s\nMessageQueue after waitForIdle takes effect, resulting in the test to\nfail.\n\nInstead of fixing the flakyness by introdcing hard sleep times,\nassertEventuallyThat is used to reduce the overall test time.\n\nWith this change the test has been observed to pass with 100% success\nrate over 50000 invocations.\n\nTest: $ runtest frameworks-net\nBug: 32561414\nChange-Id: Ib20f4656620b119456c2cb1c709a7fe8195fe44d\n"
    },
    {
      "commit": "38be57b438a0c1754091f045317db2049304e16f",
      "tree": "3b5041ac808c534a89fdd76d67ecb1d1bf693eb8",
      "parents": [
        "d4f9d37424752a0774cdf9190dc12887c70daec2"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Nov 15 11:25:52 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Nov 23 18:27:05 2016 +0900"
      },
      "message": "Fix ConnectivityServiceTest testRequestBenchmark\n\nThis patch fixes flakyness of testRequestBenchmark by adjusting time\nlimit for callback registration from 100ms to 180ms, and time limits for\nonAvailable and onLost triggers from 30ms to 40ms.\n\nWith these timeouts the test succeeds 100% over 5000 iterations.\n\nWhen using 150ms for registration timeout, running the test 5000 times\nfails 2 times.\n\nWhen using 30ms for onLost timeout, running the test 5000 times fails\n1 times.\n\nIn addition, this patch also cleans testRequestBenchmark and uses the\nmore stable SystemClock.elapsedRealtime() for duration measurements.\n\nTest: $ runtest frameworks-net\nBug: 32561414\nChange-Id: I7601b2f1f11f83914f885a74c8a376173eed186b\n"
    },
    {
      "commit": "681fcda5896fd6c94f8a543ef9983c0a0644e87e",
      "tree": "a1d50fcefdfd2c6c7ebd795f8ad0780a482ab883",
      "parents": [
        "66f6547ba9e0ae1167e1701b9ec59b044370b4a0"
      ],
      "author": {
        "name": "Etan Cohen",
        "email": "etancohen@google.com",
        "time": "Thu Oct 27 15:05:50 2016 -0700"
      },
      "committer": {
        "name": "Etan Cohen",
        "email": "etancohen@google.com",
        "time": "Mon Nov 21 19:15:10 2016 +0000"
      },
      "message": "[CS] Remove timeout event after first available\n\nGuarantees that timeouts are only delivered if a network never\nbecomes available. Once a network is available the timeout is\ncanceled.\n\nBug: 31402633\nTest: all timeout related unit tests pass (new one added)\nChange-Id: I2b7adffd82173cf8b99084cbfe5399961d51e148\n"
    },
    {
      "commit": "dc589ac82b5fe2063f4cfd94c8ae26d43d5420a0",
      "tree": "9021de8b2f115316bfe52185ef0768946e981b45",
      "parents": [
        "8c053ae1f6ffd531fc2b6070094202b59efe3818"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Thu Nov 10 15:30:17 2016 -0800"
      },
      "committer": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Mon Nov 14 11:27:12 2016 -0800"
      },
      "message": "Update usage of ActivityManagerNative.\n\n- Remove references to ActivityManagerProxy.\n- Add isSystemReady to ActivityManager.\n\nBug: 30977067\nTest: cts/hostsidetests/services/activityandwindowmanager/util/run-test android.server.cts\n      adb shell am instrument -e class com.android.server.am.ActivityManagerTest,com.android.server.am.TaskStackChangedListenerTest \\\n          -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner\nChange-Id: I07390b6124fb1515821f5c0b37baf6ae74adc8fa\n"
    },
    {
      "commit": "667f31278e5400794507a20a38054a47f68e1a9d",
      "tree": "b26c6baded13e9e9903f672b756b32d4460f4aa4",
      "parents": [
        "186ea0f170231d5de474738fd07fd2284b097a15",
        "7e0eeca8ba4063d0d35dda9a8dfcc612e45efb87"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Nov 10 08:37:55 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 10 08:37:58 2016 +0000"
      },
      "message": "Merge \"Unbreak TetherInterfaceStateMachineTest.\""
    },
    {
      "commit": "383db5ebcc3a4a615faf249bf4f126f42e80b82e",
      "tree": "75bf14fb2ad46cc7f0cdb8c9c008d1f8c37fa519",
      "parents": [
        "e7f6ca32de6eebfed88e31156f2e264dc72fc3f1"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Wed Jun 22 15:21:38 2016 +0100"
      },
      "committer": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Tue Nov 08 14:06:09 2016 +0000"
      },
      "message": "Update package names to work with the proto3 compiler\n\nBug: b/28974522\nChange-Id: I5f3adf4946ee4ba1e09e4f40afe83c151405972a\n"
    },
    {
      "commit": "19dfc38434bac8e7b3636d97d366c50f58e42a6b",
      "tree": "988a80fda8c09e0b5e9e7c792c51c01725110064",
      "parents": [
        "883461a6d42df1b99549f547ffa937c5d4da1753",
        "fa8a6f6220d1a0027ba7969c2d3f72690ddc6495"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Mon Nov 07 00:09:52 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 07 00:09:56 2016 +0000"
      },
      "message": "Merge \"frameworks-test: adding missing @SmallTest\""
    },
    {
      "commit": "fc46e9b643881b7b2ab76854f3a0ac077e9def8d",
      "tree": "faef078c68d145d20b6db707b44e986c260c6f55",
      "parents": [
        "37ea9a1f02a1247cf0afeab987e7ca460a9eadbf"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Fri Oct 21 17:55:27 2016 -0700"
      },
      "committer": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Fri Nov 04 10:43:25 2016 -0700"
      },
      "message": "Move IActivityManager to aidl.\n\nBug: 30977067\nTest: Existing tests are passing, dump commands still working.\nChange-Id: I9cf81c4d381ebce14a6c701e409cbb269f2ff1fb\n"
    },
    {
      "commit": "fa8a6f6220d1a0027ba7969c2d3f72690ddc6495",
      "tree": "47ae2f9c616a64adf91f481bd3d4dab2c87fb408",
      "parents": [
        "2c442e962e20492b6743d09b655eebdded05a4ba"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Nov 04 16:06:34 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Nov 04 16:46:29 2016 +0900"
      },
      "message": "frameworks-test: adding missing @SmallTest\n\nThis activates all frameworks-test tests in runs of the continuous\nplatform tests.\n\nTest: $ runtest frameworks-net passes (expect Tether\nBug: 32561414\nChange-Id: Ib42c4ab2d7214891cd451875ca4bf6db195538c1\n"
    },
    {
      "commit": "ac2561e8206ac42921bb6ddbb0a5972fb360e394",
      "tree": "15f2bef8479d20bfda1927a2d55e7634e3c47b42",
      "parents": [
        "87045377c464ed6ec97dc7d4f5c6d8b473cd4ed9"
      ],
      "author": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Tue Nov 01 15:43:46 2016 -0700"
      },
      "committer": {
        "name": "Wale Ogunwale",
        "email": "ogunwale@google.com",
        "time": "Wed Nov 02 10:28:45 2016 -0700"
      },
      "message": "Make window token add/remove APIs require displayId\n\nWindow tokens can now only be on one display, so we now require clients\nthat want to add/remove window tokens to specify the display they would\nlike the token to be created on. This simplifies the token handling code\nin WM and will be useful moving forward for clients that want to add\nwindows to external displays.\n\nTest: Existing tests pass\nChange-Id: I6b2d8d58a913b3624f1a9a7bebbb99315613f103\n"
    },
    {
      "commit": "790815453dc43bcf83a679f6e1a90b454ac0b45e",
      "tree": "6a67581ba1954ae55f6036eba388405601808cdf",
      "parents": [
        "fc686becb9851aa009512c285d489d5f8cf209ef",
        "4195c28347cc100954f83c3c92b4dde4673f8608"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Nov 02 12:35:45 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 02 12:35:48 2016 +0000"
      },
      "message": "Merge \"ApfTest: tag tests with @SmallTest or @MediumTest\""
    },
    {
      "commit": "dd9bb4fdd9f4b528734a7907d2bc92841ca648ab",
      "tree": "b17fb0eef2eaccc9d60fe0363d4e8bdd34bc2f05",
      "parents": [
        "e48170bcbb099c2898a1152a4c407ea43e7c8d27"
      ],
      "author": {
        "name": "Michal Karpinski",
        "email": "mkarpinski@google.com",
        "time": "Wed Oct 12 14:59:26 2016 +0100"
      },
      "committer": {
        "name": "Michal Karpinski",
        "email": "mkarpinski@google.com",
        "time": "Wed Nov 02 08:52:53 2016 +0000"
      },
      "message": "[DPM] DO can start network logging and listen for events\n\nThis CL adds:\n1) Setter and getter in DPM to manipulate logging switch (retrieval\nmethod to come in a subsequent CL(s)).\n2) A way for DPM to register to listen for events.\n3) Skeleton of NetworkLogger class (more to come in subsequent CL(s)).\n\nBug: 29748723\nChange-Id: I5c04662ccc6febd2ba294b0eaca1ed1da9c16e47\n"
    },
    {
      "commit": "4195c28347cc100954f83c3c92b4dde4673f8608",
      "tree": "2ebed54877a74e7baaa29dc16c5b14d762c13b48",
      "parents": [
        "5974b4df49eb3c861d87962ea47580eee4beae31"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Nov 02 13:43:22 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Nov 02 15:12:35 2016 +0900"
      },
      "message": "ApfTest: tag tests with @SmallTest or @MediumTest\n\nTest methods not tagged with @{Small,Medium,Large}Test will not appear\nin the Android Platform Continuous Testing dashboard.\n\nTest methods tagged with @LargeTest will not be run in the Android\nPlatform Continuous Testing dashboard.\n\nTest: ApfTest passes ($runtest frameworks-net)\nBug: 31479480\nChange-Id: Iae28fc30b6229a161388233c40863f38b902991d\n"
    },
    {
      "commit": "7072f32b32e1104a4127fdada87f298bee1b07ff",
      "tree": "7ff619ac45b9b4ec1e9e1889cabdb9aea293469d",
      "parents": [
        "37c20a369c3e695ed248724ef8ae110ecf180c8a",
        "ecc986d430f4b8158f177ed97d2edb741f11ff71"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Oct 31 04:16:48 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 31 04:16:51 2016 +0000"
      },
      "message": "Merge changes from topic \u0027frameworks-net-tests\u0027\n\n* changes:\n  Move the connectivity tests to frameworks/base/tests/net.\n  De-guava BroadcastInterceptingContext and move it to testutils.\n  Move FakeSettingsProvider to a common location.\n"
    },
    {
      "commit": "7e0eeca8ba4063d0d35dda9a8dfcc612e45efb87",
      "tree": "91a65de41c8653979f1d6b9cffdeaee20bea5dad",
      "parents": [
        "ecc986d430f4b8158f177ed97d2edb741f11ff71"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 17:45:55 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 18:41:55 2016 +0900"
      },
      "message": "Unbreak TetherInterfaceStateMachineTest.\n\nThis was broken by the implementation of IPv6 tethering, which\nrelies on various private classes which end up calling unmockable\nfinal classes like NetworkInterface.\n\nMaking everything public like this is almost certainly not the\nbest way of fixing this test, but on the other hand there is\nvalue to the test continuing to pass.\n\nTest: runtest frameworks-net  # Everything passes.\nTest: IPv6 tethering continues to work.\nChange-Id: I99cb146b04fd29c6c94080652e1138e8699d58d5\n"
    },
    {
      "commit": "ecc986d430f4b8158f177ed97d2edb741f11ff71",
      "tree": "8d3dc226faa694275b8248d699f332ce017137eb",
      "parents": [
        "281a17c9580de5c9898be7d9654d428801976511"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 12:48:36 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 17:12:36 2016 +0900"
      },
      "message": "Move the connectivity tests to frameworks/base/tests/net.\n\nThis will give us a good place to put all the networking tests.\n\nFix: 31479480\nTest: adb  shell am instrument -w -e notClass com.android.server.connectivity.tethering.TetherInterfaceStateMachineTest \u0027com.android.frameworks.tests.net/android.support.test.runner.AndroidJUnitRunner\u0027  # PASS\nChange-Id: I4b389f7f4e33a996885b38670f585e58ca66f777\n"
    },
    {
      "commit": "281a17c9580de5c9898be7d9654d428801976511",
      "tree": "c91f2095c822ae95b9d8a1f1654b86ecb806e9b8",
      "parents": [
        "7df1a82802cdf842d07a86a80383c7d5ea7ae53a"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 12:56:03 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 17:12:36 2016 +0900"
      },
      "message": "De-guava BroadcastInterceptingContext and move it to testutils.\n\nRemoving the static dependency on guava reduces test compile time\nby about 20 seconds on a Z840, thus substantially speeding up the\ncompile/test cycle.\n\nMake FutureIntent public instead of package-private because it is\nused directly by NetworkPolicyManagementServiceTest, which as of\nthis CL is now in a different package.\n\nTest: runtest frameworks-services -c com.android.server.ConnectivityServiceTest  # PASS\nTest: runtest frameworks-services -c com.android.server.NetworkPolicyManagerServiceTest  # PASS\nTest: runtest frameworks-services -c com.android.server.net.NetworkStatsServiceTest  # PASS\nTest: runtest frameworks-services -c com.android.server.NetworkManagementServiceTest  # Already failing.\nBug: 31479480\nChange-Id: Ifab32c9214e9caab71dbf93b3d3ca88df6f49636\n"
    },
    {
      "commit": "7df1a82802cdf842d07a86a80383c7d5ea7ae53a",
      "tree": "97e94b1cdcfb49c096b0cbdeb105fb2772cea7bc",
      "parents": [
        "d28137e0b70360b34c3f3715e57d057aae6d766f"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 12:37:38 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Oct 28 17:12:31 2016 +0900"
      },
      "message": "Move FakeSettingsProvider to a common location.\n\nTest: runtest frameworks-util -c com.android.internal.util.test.FakeSettingsProviderTest\nTest: runtest frameworks-services -c com.android.server.ConnectivityServiceTest\nTest: runtest frameworks-services -c com.android.server.retaildemo.PreloadAppsInstallerTest\nTest: runtest frameworks-services -c com.android.server.retaildemo.RetailDemoModeServiceTest\nBug: 31479480\nChange-Id: I82a1a1a7219cf1385092b84d85eddf9dda90c685\n"
    },
    {
      "commit": "6bc701421047bf881ee16c49b242ea19ae4cd9b9",
      "tree": "0723a0eb7f9bc4919899a404fb19df6cdb0d45ae",
      "parents": [
        "8977c2dcd65266cc60e5c6e3b7688fcdc7fd9761"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 26 16:49:17 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 27 14:13:44 2016 -0700"
      },
      "message": "Add SurfaceHolder#lockHardwareCanvas()\n\nBug: 26988043\nTest: SurfaceViewTests#testSurfaceHolderHardwareCanvas CTS test\nChange-Id: I3e5352d498dbe2fc56a18ca27360d129a14c7784\n"
    },
    {
      "commit": "5406e7ade87c33f70c83a283781dcc48fb67cdb9",
      "tree": "32f090c0d0a7a34dc51aa955f128677e24345aee",
      "parents": [
        "fa4c311438dc174df7acac822a9aa91ae91e9879"
      ],
      "author": {
        "name": "Andrii Kulian",
        "email": "akulian@google.com",
        "time": "Fri Oct 21 11:55:23 2016 -0700"
      },
      "committer": {
        "name": "Andrii Kulian",
        "email": "akulian@google.com",
        "time": "Tue Oct 25 13:22:10 2016 -0700"
      },
      "message": "Apply display override config for secondary displays\n\nNow display-specific settings, such as dimensions and orientation,\nare stored in display override config. For default display it is\nmirroring the global config. Each time when global config is updated,\noverride of the default display should be updated too and vice versa.\n\nTest: Existing and manual tests still pass.\nChange-Id: Ic6c2190092d328820f314a05bed43c875db18170\n"
    },
    {
      "commit": "9f891300bb73c28809cdc73ef38a693fb94a0fd2",
      "tree": "d5f645600f77893604eceaffcedbdfd8bf3c7ac5",
      "parents": [
        "ccbc5c183067ae988f57725cfafda855bafa47ec",
        "58d30ae2098ce9c6fc01dfb7dfe576e5b4bc4e79"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Oct 13 16:45:47 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 13 16:45:50 2016 +0000"
      },
      "message": "Merge \"Add SlowNestedRecyclerViewActivity\""
    },
    {
      "commit": "58d30ae2098ce9c6fc01dfb7dfe576e5b4bc4e79",
      "tree": "89b560c08ebf7ec675a07f4f7c9e577ea9fe667f",
      "parents": [
        "017f1dc54fa96059ab8c3fa4a9d98d9ab091c202"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 12 11:10:36 2016 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 12 16:21:20 2016 -0700"
      },
      "message": "Add SlowNestedRecyclerViewActivity\n\nBug: 31063101\nTest: adb shell am instrument -e iterations 10 -w -e class com.android.uibench.janktests.UiBenchJankTests#testSlowNestedRecyclerViewFling com.android.uibench.janktests/android.test.InstrumentationTestRunner\n\nChange-Id: I43e988e889f356323c9aea099f0efc6a04556f11\n"
    },
    {
      "commit": "b754ca687639bc63e89b05029081ead1162e8152",
      "tree": "28cfe997b1c576db03a6e785a33ea24f838c1eba",
      "parents": [
        "5f9b85ff4c285d6d5cee02754626f1ca8e94d1a8"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Wed Oct 12 10:31:55 2016 -0400"
      },
      "committer": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Wed Oct 12 10:32:56 2016 -0400"
      },
      "message": "Fix channel conditional in cancelAll.\n\nBug: 32083625\nTest: manual and runtest systemui-jank -c android.platform.systemui.tests.jank.SystemUiJankTests -m testNotificationListPull\nChange-Id: I1b9bb7a287be461d832816f22822c6dd6eb5e8f0\n"
    },
    {
      "commit": "e692f31fd687abacc58dbf34c28527b224a9598a",
      "tree": "da2aa1c93dfad554bbf70463d46f17fb26fe3f37",
      "parents": [
        "03a1edfe7f3aec23c8d459a53dadd2fe01b6eda2"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 06 17:39:49 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 06 18:06:32 2016 -0700"
      },
      "message": "Add a graph to jitter test\n\nTest: manual\nChange-Id: I914c0852d801d9cd5c4f14cc5a9cfae4b64ff334\n"
    },
    {
      "commit": "03a1edfe7f3aec23c8d459a53dadd2fe01b6eda2",
      "tree": "40b7469e36a968482671e9207d90d34f8edfbb8b",
      "parents": [
        "e8b3e3d1c907521dd14dd01e235defdd7caa9000"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 06 14:46:19 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 06 15:58:03 2016 -0700"
      },
      "message": "Jitter-specific test exploration\n\nTest: manual, run the RenderingJitter activity\nChange-Id: Id6ae9ed471bf02ed3015d369cdf5ea248898bbc2\n"
    },
    {
      "commit": "354736e196ff79962b3ddb52619a674044d773e2",
      "tree": "3a70250f8ba7f69f1961491c55e4b5b48ebe99ef",
      "parents": [
        "015deed8104aae1f306394cdf66088592995f0da"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 22 17:00:05 2016 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 29 10:58:44 2016 -0700"
      },
      "message": "New infrastructure to switch remaining commands to \"cmd\" calls.\n\nThis introduces a new feature of the IBinder command protocol\nto allow the shell command implementation to call back into\nits caller to ask it to open files in the calling context.  This\nis needed so that commands that have arguments specifying files\ncan open those files as the calling shell, not the system (or\nwhatever) process.\n\nTo test this all out, move the \"am start\" implementation over\nto ActivityManagerShellCommand, in particular along with its\noption to specify a file in which to write profiling data.\n\nTest: Manual\n\nChange-Id: I0c1e3857defefbd19a2ac29413aafbb34b1e48a3\n"
    },
    {
      "commit": "9af35449050d5e49966a02b12805ef03a4d983e0",
      "tree": "c9114ac53182426c597187260b70977de7292e54",
      "parents": [
        "92b6ab4515e3a5ef13b7f810faef12f2fc365dd5",
        "8439c6dcb2963c8a0e17ef00fc2a9592b3a066d0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 17 02:04:58 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 17 02:05:01 2016 +0000"
      },
      "message": "Merge \"Handle the case where window position comes before view map\""
    },
    {
      "commit": "8439c6dcb2963c8a0e17ef00fc2a9592b3a066d0",
      "tree": "fe4e36022becd38b03402465d7c08b362b136ea0",
      "parents": [
        "e94cc880c89b2b36a99b7d707951b373d5186f34"
      ],
      "author": {
        "name": "Manu Cornet",
        "email": "manucornet@google.com",
        "time": "Fri Sep 16 17:02:44 2016 -0700"
      },
      "committer": {
        "name": "Manu Cornet",
        "email": "manucornet@google.com",
        "time": "Fri Sep 16 17:06:24 2016 -0700"
      },
      "message": "Handle the case where window position comes before view map\n\nTest: Tested this change with a device with http://go/ag/1451804 to\nmake sure the new protocol was understood.\n\nChange-Id: I9c42cfeb27951ae66a77386d0644d84c230a4923\n"
    },
    {
      "commit": "1d01d315030fde9954a64b3c7bca5bd8c3d5f889",
      "tree": "57aa9e676291689b3de041826f320e76700a3590",
      "parents": [
        "cb2761321232fdbe3895285c384e283318931bfe",
        "bb6491755b1e54121b45ce62039f27b3de61ad42"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 16 22:40:28 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 22:40:28 2016 +0000"
      },
      "message": "Slow RecyclerView item binding benchmark am: 58427a62ac am: 3346f28b28\nam: bb6491755b\n\nChange-Id: I6154d52beba54f5c7cbbcd9c0714f3b873d35117\n"
    },
    {
      "commit": "bb6491755b1e54121b45ce62039f27b3de61ad42",
      "tree": "ba907ed3f1ff82771d82ac9536f8cd49f3cc9aa8",
      "parents": [
        "f0e123c1e14833257ee09c0e023c548fdf39a98f",
        "3346f28b289030e0c5266c84f8946057c42e9322"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 16 22:24:06 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 22:24:06 2016 +0000"
      },
      "message": "Slow RecyclerView item binding benchmark am: 58427a62ac\nam: 3346f28b28\n\nChange-Id: I65f2f0f35e887171d271a7c25b687ed57cfd219d\n"
    },
    {
      "commit": "3346f28b289030e0c5266c84f8946057c42e9322",
      "tree": "1a93e47db53451de0ac6e8b524417ab41a87c4b7",
      "parents": [
        "f4e9efe9d54d6bde2602d17692d483bc4de1b977",
        "58427a62ac6dce6acc35617ac9eabdaba18ea2b4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 16 22:15:31 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 22:15:31 2016 +0000"
      },
      "message": "Slow RecyclerView item binding benchmark\nam: 58427a62ac\n\nChange-Id: I55d2333c4630fd539d9fdc22a15023e5f4d8c25c\n"
    },
    {
      "commit": "58427a62ac6dce6acc35617ac9eabdaba18ea2b4",
      "tree": "ca65ca690acd59d1084893b87619f955dfd3a830",
      "parents": [
        "c6c45d225cba9ecc4521de61c3af49cc038d685a"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Sep 06 11:06:44 2016 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Sep 13 14:45:53 2016 -0700"
      },
      "message": "Slow RecyclerView item binding benchmark\n\nbug:27106058\nbug:31063101\n\nChange-Id: Ib903a31be707ba16fccf95cbbe24cd0f0b3baee3\n"
    },
    {
      "commit": "b6bcba34f046ac9cf454c133ad0ba4586de126e8",
      "tree": "7e86ad23fdd3e193026fc5a99486b34e36d9a463",
      "parents": [
        "9157e54735a77bd3f7eb45a945eaeaf2cbb46fa7",
        "4ad89dafb2d7d4901f59ea1ae33a42ce8302d83f"
      ],
      "author": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Fri Sep 02 20:42:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 02 20:42:45 2016 +0000"
      },
      "message": "Remove redundant code am: 4ebc5986a8 am: 82907dfd36\nam: 4ad89dafb2\n\nChange-Id: I8aee87bd0d1f910ac4ad428f6f063cb07ee58652\n"
    },
    {
      "commit": "4ad89dafb2d7d4901f59ea1ae33a42ce8302d83f",
      "tree": "67453f3538354928a178fa5c59b38dbb68e89cf5",
      "parents": [
        "7ea4e8fefe5a1719f274e5dca24c895226f46590",
        "82907dfd368eb4c74b35c4feafb41380e2e8d99f"
      ],
      "author": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Fri Sep 02 17:53:59 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 02 17:53:59 2016 +0000"
      },
      "message": "Remove redundant code am: 4ebc5986a8\nam: 82907dfd36\n\nChange-Id: Ia55faf872466f837ea1b7c327ffc30590d781d60\n"
    },
    {
      "commit": "4ebc5986a88fcf5d838fb0b82b15e1b637ee87a1",
      "tree": "03ba0086740fa517a6a566c990c750f18c03d3e5",
      "parents": [
        "a5e0fedbb3e344fa423f349d10e470cc59274ee8"
      ],
      "author": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Mon Aug 22 15:18:11 2016 -0700"
      },
      "committer": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Wed Aug 31 14:30:37 2016 -0700"
      },
      "message": "Remove redundant code\n\nThis can save both system image size and run time memory usage.\nEvery byte counts. :)\n\nb/30956516\n\nChange-Id: I1af0455fe488e3122f6cf8e8fca5a5a43a4614f2\n"
    },
    {
      "commit": "d059031c73c5d387f8d3a2fa2e14f24b81dbd326",
      "tree": "b633d2e367844b64db5e637e33a9e64ef8658414",
      "parents": [
        "a1dea123ea34c9d163925b3d88e7ac3ff102ec4c",
        "01c560f4af25c4a2d006b844d79f09458deec9a4"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu Aug 25 20:42:24 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 20:42:32 2016 +0000"
      },
      "message": "Merge \"Avoid JUnit4 collision in android-support-test, mockito-target\""
    },
    {
      "commit": "01c560f4af25c4a2d006b844d79f09458deec9a4",
      "tree": "573b8850f448c2cd2ea5bb5752aa9740f8eed711",
      "parents": [
        "d3ca5980f7d85e706d39af6da26686b6632f1d46"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Wed Aug 24 10:49:23 2016 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu Aug 25 19:37:46 2016 +0000"
      },
      "message": "Avoid JUnit4 collision in android-support-test, mockito-target\n\nBug: 31072145\nTest: make droid checkbuild\n\nChange-Id: I1462b0ba70aa3ede1a5b2ccc407e234dea1eb1b2\n"
    },
    {
      "commit": "badbbae6fa2846415778b2a152a0758acbf0eb74",
      "tree": "e4fe03dfcf31c78e12f13fc16b7fb810b67bae1f",
      "parents": [
        "d3ca5980f7d85e706d39af6da26686b6632f1d46"
      ],
      "author": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Tue Jan 05 13:27:29 2016 -0800"
      },
      "committer": {
        "name": "Vitalii Tomkiv",
        "email": "vitalit@google.com",
        "time": "Wed Aug 24 15:00:08 2016 -0700"
      },
      "message": "allow external USB host management\n\n- Setting config_UsbDeviceConnectionHandling_component leads into\n  launching specified Activity whenever USB device is connected.\n- This allows external Activity to manage USB device based on\n  its own setup and settings.\n- Device access can be passed to other app with permission update\n  by UsbManager.grantPermission.\n- added UsbDeviceConnection.resetDevice() to reset USB device connected.\n  This is necessary to get device out from AOAP.\n- Test requires installing UsbHostExternalManagmentTestApp and\n  AoapTestHost to USB host, and AoapTestDevice to USB Device.\n\nbug: 26404209\nChange-Id: I8e77ddc646c15454d9b2ecf1356924cf6351fc28\n"
    },
    {
      "commit": "d136ce902c0be4a0cfb8e9d1288ba931ceaf88b4",
      "tree": "2927623aa4cdb9429c7c7dd01c2479b781ac95fd",
      "parents": [
        "07d500643266e9dba57f244e595448b7edcc5c59"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 08 12:25:59 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 08 13:32:34 2016 -0700"
      },
      "message": "Add TouchLatency test\n\nChange-Id: Ic3a788f6b06bf6477ab23b183fb8c76ae8870b6b\n"
    },
    {
      "commit": "812bf0130c9d3ec6eda45290eeb81948b0539b35",
      "tree": "33290ce55be15b1a2de692982dd822e98ba83e9a",
      "parents": [
        "31d2936da3d31148dc132e96996530d7a043d251"
      ],
      "author": {
        "name": "Pablo Ceballos",
        "email": "pceballos@google.com",
        "time": "Thu Aug 04 18:23:20 2016 -0700"
      },
      "committer": {
        "name": "Pablo Ceballos",
        "email": "pceballos@google.com",
        "time": "Fri Aug 05 17:45:39 2016 +0000"
      },
      "message": "UiBench: Fix camera distance for GlTextureView\n\nChange-Id: Ieab2080c8b0a4baa3e844a2a616cdc9f4d4e8101\n"
    },
    {
      "commit": "7c4482b9ecd53f14f18536f665630091e6331c2d",
      "tree": "f66dbb75a1aaefb0fa71a8938af52ab10f9558fb",
      "parents": [
        "f1036347b704f34fcd86e461e477d05ea69fc6e2",
        "4dadfe9e7243f0db21c162a03a6b15d24b47a5ae"
      ],
      "author": {
        "name": "Yuanlang Song",
        "email": "yuanlang@google.com",
        "time": "Tue Aug 02 02:54:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 02 02:54:18 2016 +0000"
      },
      "message": "Work around to get ride of NPE in app startup test am: eaf08cf7d0 am: 832ec72c38\nam: 4dadfe9e72\n\nChange-Id: I6b96dc77a88e9ad5ee638153dfe56214be164796\n"
    },
    {
      "commit": "4dadfe9e7243f0db21c162a03a6b15d24b47a5ae",
      "tree": "f91751225d76b28b22d75e8987af20802ead2eac",
      "parents": [
        "7a760d57f5a363666d8edba87d9e794d8bdff024",
        "832ec72c38b5533cf9661d0254058cdf73395789"
      ],
      "author": {
        "name": "Yuanlang Song",
        "email": "yuanlang@google.com",
        "time": "Tue Aug 02 00:50:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 02 00:50:19 2016 +0000"
      },
      "message": "Work around to get ride of NPE in app startup test am: eaf08cf7d0\nam: 832ec72c38\n\nChange-Id: Ia06a591cec41b2546d99411e51741bfdbe5c7886\n"
    },
    {
      "commit": "eaf08cf7d0aaceb187dd879f7cd53c9d26d4bd75",
      "tree": "fa76d4496ebd3100faa88b0edf2fed888f8d5661",
      "parents": [
        "4e00581e6b98ff59a9a1dbf2038639c395a594aa"
      ],
      "author": {
        "name": "Yuanlang Song",
        "email": "yuanlang@google.com",
        "time": "Mon Aug 01 12:11:57 2016 -0700"
      },
      "committer": {
        "name": "Yuanlang Song",
        "email": "yuanlang@google.com",
        "time": "Mon Aug 01 12:11:57 2016 -0700"
      },
      "message": "Work around to get ride of NPE in app startup test\n\nbug: 30374599\nChange-Id: I9050ba6ac6283734c345e4e7f9f56f34e1477c7a\n"
    },
    {
      "commit": "6c678b02f873c6d7b7523cddcb5419cc7163bb07",
      "tree": "da034f0edf928d3fa1bfa9ef711172a4ce3ca301",
      "parents": [
        "7fc9f3d8e5901990a8d223ee96ed66759318d463",
        "d3868cfc63cd814e43367586f5706f39ec1cd5a9"
      ],
      "author": {
        "name": "Mitchell Wills",
        "email": "mwills@google.com",
        "time": "Fri Jul 29 01:37:01 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 29 01:37:03 2016 +0000"
      },
      "message": "Merge \"Don\u0027t pull in external/junit through mockito\""
    },
    {
      "commit": "d3868cfc63cd814e43367586f5706f39ec1cd5a9",
      "tree": "9134b65a218cb7348de9cb5efc32aca913f4b1ae",
      "parents": [
        "9382c5a7e4f2e6b90d2fa0810a2074701483496f"
      ],
      "author": {
        "name": "Mitchell Wills",
        "email": "mwills@google.com",
        "time": "Thu Jul 28 17:04:38 2016 -0700"
      },
      "committer": {
        "name": "Mitchell Wills",
        "email": "mwills@google.com",
        "time": "Thu Jul 28 17:05:17 2016 -0700"
      },
      "message": "Don\u0027t pull in external/junit through mockito\n\nandroid-support-test provides a different version of junit\n\nFIXED\u003d30481239\n\nChange-Id: I6d8f52d5f82b4c9905da8cc4a6ca79216eba9e26\n"
    }
  ],
  "next": "dd1e66f737271dedded652cfae69a0cd7d46a86c"
}
