Loading api/current.txt +3 −1 Original line number Diff line number Diff line Loading @@ -28736,10 +28736,12 @@ package android.net { } public static final class ConnectivityDiagnosticsManager.DataStallReport implements android.os.Parcelable { ctor public ConnectivityDiagnosticsManager.DataStallReport(@NonNull android.net.Network, long, int, @NonNull android.os.PersistableBundle); ctor public ConnectivityDiagnosticsManager.DataStallReport(@NonNull android.net.Network, long, int, @NonNull android.net.LinkProperties, @NonNull android.net.NetworkCapabilities, @NonNull android.os.PersistableBundle); method public int describeContents(); method public int getDetectionMethod(); method @NonNull public android.net.LinkProperties getLinkProperties(); method @NonNull public android.net.Network getNetwork(); method @NonNull public android.net.NetworkCapabilities getNetworkCapabilities(); method public long getReportTimestamp(); method @NonNull public android.os.PersistableBundle getStallDetails(); method public void writeToParcel(@NonNull android.os.Parcel, int); core/java/android/net/ConnectivityDiagnosticsManager.java +48 −3 Original line number Diff line number Diff line Loading @@ -252,8 +252,8 @@ public class ConnectivityDiagnosticsManager { @NonNull PersistableBundle additionalInfo) { mNetwork = network; mReportTimestamp = reportTimestamp; mLinkProperties = linkProperties; mNetworkCapabilities = networkCapabilities; mLinkProperties = new LinkProperties(linkProperties); mNetworkCapabilities = new NetworkCapabilities(networkCapabilities); mAdditionalInfo = additionalInfo; } Loading Loading @@ -433,6 +433,12 @@ public class ConnectivityDiagnosticsManager { /** The detection method used to identify the suspected data stall */ @DetectionMethod private final int mDetectionMethod; /** LinkProperties available on the Network at the reported timestamp */ @NonNull private final LinkProperties mLinkProperties; /** NetworkCapabilities available on the Network at the reported timestamp */ @NonNull private final NetworkCapabilities mNetworkCapabilities; /** PersistableBundle that may contain additional information on the suspected data stall */ @NonNull private final PersistableBundle mStallDetails; Loading @@ -446,16 +452,23 @@ public class ConnectivityDiagnosticsManager { * @param network The Network for which this DataStallReport applies * @param reportTimestamp The timestamp for the report * @param detectionMethod The detection method used to identify this data stall * @param linkProperties The LinkProperties available on network at reportTimestamp * @param networkCapabilities The NetworkCapabilities available on network at * reportTimestamp * @param stallDetails A PersistableBundle that may contain additional info about the report */ public DataStallReport( @NonNull Network network, long reportTimestamp, @DetectionMethod int detectionMethod, @NonNull LinkProperties linkProperties, @NonNull NetworkCapabilities networkCapabilities, @NonNull PersistableBundle stallDetails) { mNetwork = network; mReportTimestamp = reportTimestamp; mDetectionMethod = detectionMethod; mLinkProperties = new LinkProperties(linkProperties); mNetworkCapabilities = new NetworkCapabilities(networkCapabilities); mStallDetails = stallDetails; } Loading Loading @@ -487,6 +500,26 @@ public class ConnectivityDiagnosticsManager { return mDetectionMethod; } /** * Returns the LinkProperties available when this report was taken. * * @return LinkProperties available on the Network at the reported timestamp */ @NonNull public LinkProperties getLinkProperties() { return new LinkProperties(mLinkProperties); } /** * Returns the NetworkCapabilities when this report was taken. * * @return NetworkCapabilities available on the Network at the reported timestamp */ @NonNull public NetworkCapabilities getNetworkCapabilities() { return new NetworkCapabilities(mNetworkCapabilities); } /** * Returns a PersistableBundle with additional info for this report. * Loading @@ -513,12 +546,20 @@ public class ConnectivityDiagnosticsManager { return mReportTimestamp == that.mReportTimestamp && mDetectionMethod == that.mDetectionMethod && mNetwork.equals(that.mNetwork) && mLinkProperties.equals(that.mLinkProperties) && mNetworkCapabilities.equals(that.mNetworkCapabilities) && persistableBundleEquals(mStallDetails, that.mStallDetails); } @Override public int hashCode() { return Objects.hash(mNetwork, mReportTimestamp, mDetectionMethod, mStallDetails); return Objects.hash( mNetwork, mReportTimestamp, mDetectionMethod, mLinkProperties, mNetworkCapabilities, mStallDetails); } /** {@inheritDoc} */ Loading @@ -533,6 +574,8 @@ public class ConnectivityDiagnosticsManager { dest.writeParcelable(mNetwork, flags); dest.writeLong(mReportTimestamp); dest.writeInt(mDetectionMethod); dest.writeParcelable(mLinkProperties, flags); dest.writeParcelable(mNetworkCapabilities, flags); dest.writeParcelable(mStallDetails, flags); } Loading @@ -544,6 +587,8 @@ public class ConnectivityDiagnosticsManager { in.readParcelable(null), in.readLong(), in.readInt(), in.readParcelable(null), in.readParcelable(null), in.readParcelable(null)); } Loading services/core/java/com/android/server/ConnectivityService.java +7 −1 Original line number Diff line number Diff line Loading @@ -7764,7 +7764,13 @@ public class ConnectivityService extends IConnectivityManager.Stub @NonNull NetworkAgentInfo nai, long timestampMillis, int detectionMethod, @NonNull PersistableBundle extras) { final DataStallReport report = new DataStallReport(nai.network, timestampMillis, detectionMethod, extras); new DataStallReport( nai.network, timestampMillis, detectionMethod, nai.linkProperties, nai.networkCapabilities, extras); final List<IConnectivityDiagnosticsCallback> results = getMatchingPermissionedCallbacks(nai); for (final IConnectivityDiagnosticsCallback cb : results) { Loading tests/net/java/android/net/ConnectivityDiagnosticsManagerTest.java +86 −24 Original line number Diff line number Diff line Loading @@ -146,17 +146,14 @@ public class ConnectivityDiagnosticsManagerTest { @Test public void testConnectivityReportEquals() { assertEquals(createSampleConnectivityReport(), createSampleConnectivityReport()); assertEquals(createDefaultConnectivityReport(), createDefaultConnectivityReport()); final ConnectivityReport defaultReport = createDefaultConnectivityReport(); final ConnectivityReport sampleReport = createSampleConnectivityReport(); assertEquals(sampleReport, createSampleConnectivityReport()); assertEquals(defaultReport, createDefaultConnectivityReport()); final LinkProperties linkProperties = new LinkProperties(); linkProperties.setInterfaceName(INTERFACE_NAME); final NetworkCapabilities networkCapabilities = new NetworkCapabilities(); networkCapabilities.addCapability(NetworkCapabilities.NET_CAPABILITY_IMS); final PersistableBundle bundle = new PersistableBundle(); bundle.putString(BUNDLE_KEY, BUNDLE_VALUE); final LinkProperties linkProperties = sampleReport.getLinkProperties(); final NetworkCapabilities networkCapabilities = sampleReport.getNetworkCapabilities(); final PersistableBundle bundle = sampleReport.getAdditionalInfo(); assertNotEquals( createDefaultConnectivityReport(), Loading Loading @@ -206,39 +203,104 @@ public class ConnectivityDiagnosticsManagerTest { } private DataStallReport createSampleDataStallReport() { final LinkProperties linkProperties = new LinkProperties(); linkProperties.setInterfaceName(INTERFACE_NAME); final PersistableBundle bundle = new PersistableBundle(); bundle.putString(BUNDLE_KEY, BUNDLE_VALUE); return new DataStallReport(new Network(NET_ID), TIMESTAMP, DETECTION_METHOD, bundle); final NetworkCapabilities networkCapabilities = new NetworkCapabilities(); networkCapabilities.addCapability(NetworkCapabilities.NET_CAPABILITY_IMS); return new DataStallReport( new Network(NET_ID), TIMESTAMP, DETECTION_METHOD, linkProperties, networkCapabilities, bundle); } private DataStallReport createDefaultDataStallReport() { return new DataStallReport(new Network(0), 0L, 0, PersistableBundle.EMPTY); return new DataStallReport( new Network(0), 0L, 0, new LinkProperties(), new NetworkCapabilities(), PersistableBundle.EMPTY); } @Test public void testDataStallReportEquals() { assertEquals(createSampleDataStallReport(), createSampleDataStallReport()); assertEquals(createDefaultDataStallReport(), createDefaultDataStallReport()); final DataStallReport defaultReport = createDefaultDataStallReport(); final DataStallReport sampleReport = createSampleDataStallReport(); assertEquals(sampleReport, createSampleDataStallReport()); assertEquals(defaultReport, createDefaultDataStallReport()); final PersistableBundle bundle = new PersistableBundle(); bundle.putString(BUNDLE_KEY, BUNDLE_VALUE); final LinkProperties linkProperties = sampleReport.getLinkProperties(); final NetworkCapabilities networkCapabilities = sampleReport.getNetworkCapabilities(); final PersistableBundle bundle = sampleReport.getStallDetails(); assertNotEquals( createDefaultDataStallReport(), new DataStallReport(new Network(NET_ID), 0L, 0, PersistableBundle.EMPTY)); defaultReport, new DataStallReport( new Network(NET_ID), 0L, 0, new LinkProperties(), new NetworkCapabilities(), PersistableBundle.EMPTY)); assertNotEquals( defaultReport, new DataStallReport( new Network(0), TIMESTAMP, 0, new LinkProperties(), new NetworkCapabilities(), PersistableBundle.EMPTY)); assertNotEquals( createDefaultDataStallReport(), new DataStallReport(new Network(0), TIMESTAMP, 0, PersistableBundle.EMPTY)); defaultReport, new DataStallReport( new Network(0), 0L, DETECTION_METHOD, new LinkProperties(), new NetworkCapabilities(), PersistableBundle.EMPTY)); assertNotEquals( createDefaultDataStallReport(), new DataStallReport(new Network(0), 0L, DETECTION_METHOD, PersistableBundle.EMPTY)); defaultReport, new DataStallReport( new Network(0), 0L, 0, linkProperties, new NetworkCapabilities(), PersistableBundle.EMPTY)); assertNotEquals( defaultReport, new DataStallReport( new Network(0), 0L, 0, new LinkProperties(), networkCapabilities, PersistableBundle.EMPTY)); assertNotEquals( createDefaultDataStallReport(), new DataStallReport(new Network(0), 0L, 0, bundle)); defaultReport, new DataStallReport( new Network(0), 0L, 0, new LinkProperties(), new NetworkCapabilities(), bundle)); } @Test public void testDataStallReportParcelUnparcel() { assertParcelSane(createSampleDataStallReport(), 4); assertParcelSane(createSampleDataStallReport(), 6); } @Test Loading Loading
api/current.txt +3 −1 Original line number Diff line number Diff line Loading @@ -28736,10 +28736,12 @@ package android.net { } public static final class ConnectivityDiagnosticsManager.DataStallReport implements android.os.Parcelable { ctor public ConnectivityDiagnosticsManager.DataStallReport(@NonNull android.net.Network, long, int, @NonNull android.os.PersistableBundle); ctor public ConnectivityDiagnosticsManager.DataStallReport(@NonNull android.net.Network, long, int, @NonNull android.net.LinkProperties, @NonNull android.net.NetworkCapabilities, @NonNull android.os.PersistableBundle); method public int describeContents(); method public int getDetectionMethod(); method @NonNull public android.net.LinkProperties getLinkProperties(); method @NonNull public android.net.Network getNetwork(); method @NonNull public android.net.NetworkCapabilities getNetworkCapabilities(); method public long getReportTimestamp(); method @NonNull public android.os.PersistableBundle getStallDetails(); method public void writeToParcel(@NonNull android.os.Parcel, int);
core/java/android/net/ConnectivityDiagnosticsManager.java +48 −3 Original line number Diff line number Diff line Loading @@ -252,8 +252,8 @@ public class ConnectivityDiagnosticsManager { @NonNull PersistableBundle additionalInfo) { mNetwork = network; mReportTimestamp = reportTimestamp; mLinkProperties = linkProperties; mNetworkCapabilities = networkCapabilities; mLinkProperties = new LinkProperties(linkProperties); mNetworkCapabilities = new NetworkCapabilities(networkCapabilities); mAdditionalInfo = additionalInfo; } Loading Loading @@ -433,6 +433,12 @@ public class ConnectivityDiagnosticsManager { /** The detection method used to identify the suspected data stall */ @DetectionMethod private final int mDetectionMethod; /** LinkProperties available on the Network at the reported timestamp */ @NonNull private final LinkProperties mLinkProperties; /** NetworkCapabilities available on the Network at the reported timestamp */ @NonNull private final NetworkCapabilities mNetworkCapabilities; /** PersistableBundle that may contain additional information on the suspected data stall */ @NonNull private final PersistableBundle mStallDetails; Loading @@ -446,16 +452,23 @@ public class ConnectivityDiagnosticsManager { * @param network The Network for which this DataStallReport applies * @param reportTimestamp The timestamp for the report * @param detectionMethod The detection method used to identify this data stall * @param linkProperties The LinkProperties available on network at reportTimestamp * @param networkCapabilities The NetworkCapabilities available on network at * reportTimestamp * @param stallDetails A PersistableBundle that may contain additional info about the report */ public DataStallReport( @NonNull Network network, long reportTimestamp, @DetectionMethod int detectionMethod, @NonNull LinkProperties linkProperties, @NonNull NetworkCapabilities networkCapabilities, @NonNull PersistableBundle stallDetails) { mNetwork = network; mReportTimestamp = reportTimestamp; mDetectionMethod = detectionMethod; mLinkProperties = new LinkProperties(linkProperties); mNetworkCapabilities = new NetworkCapabilities(networkCapabilities); mStallDetails = stallDetails; } Loading Loading @@ -487,6 +500,26 @@ public class ConnectivityDiagnosticsManager { return mDetectionMethod; } /** * Returns the LinkProperties available when this report was taken. * * @return LinkProperties available on the Network at the reported timestamp */ @NonNull public LinkProperties getLinkProperties() { return new LinkProperties(mLinkProperties); } /** * Returns the NetworkCapabilities when this report was taken. * * @return NetworkCapabilities available on the Network at the reported timestamp */ @NonNull public NetworkCapabilities getNetworkCapabilities() { return new NetworkCapabilities(mNetworkCapabilities); } /** * Returns a PersistableBundle with additional info for this report. * Loading @@ -513,12 +546,20 @@ public class ConnectivityDiagnosticsManager { return mReportTimestamp == that.mReportTimestamp && mDetectionMethod == that.mDetectionMethod && mNetwork.equals(that.mNetwork) && mLinkProperties.equals(that.mLinkProperties) && mNetworkCapabilities.equals(that.mNetworkCapabilities) && persistableBundleEquals(mStallDetails, that.mStallDetails); } @Override public int hashCode() { return Objects.hash(mNetwork, mReportTimestamp, mDetectionMethod, mStallDetails); return Objects.hash( mNetwork, mReportTimestamp, mDetectionMethod, mLinkProperties, mNetworkCapabilities, mStallDetails); } /** {@inheritDoc} */ Loading @@ -533,6 +574,8 @@ public class ConnectivityDiagnosticsManager { dest.writeParcelable(mNetwork, flags); dest.writeLong(mReportTimestamp); dest.writeInt(mDetectionMethod); dest.writeParcelable(mLinkProperties, flags); dest.writeParcelable(mNetworkCapabilities, flags); dest.writeParcelable(mStallDetails, flags); } Loading @@ -544,6 +587,8 @@ public class ConnectivityDiagnosticsManager { in.readParcelable(null), in.readLong(), in.readInt(), in.readParcelable(null), in.readParcelable(null), in.readParcelable(null)); } Loading
services/core/java/com/android/server/ConnectivityService.java +7 −1 Original line number Diff line number Diff line Loading @@ -7764,7 +7764,13 @@ public class ConnectivityService extends IConnectivityManager.Stub @NonNull NetworkAgentInfo nai, long timestampMillis, int detectionMethod, @NonNull PersistableBundle extras) { final DataStallReport report = new DataStallReport(nai.network, timestampMillis, detectionMethod, extras); new DataStallReport( nai.network, timestampMillis, detectionMethod, nai.linkProperties, nai.networkCapabilities, extras); final List<IConnectivityDiagnosticsCallback> results = getMatchingPermissionedCallbacks(nai); for (final IConnectivityDiagnosticsCallback cb : results) { Loading
tests/net/java/android/net/ConnectivityDiagnosticsManagerTest.java +86 −24 Original line number Diff line number Diff line Loading @@ -146,17 +146,14 @@ public class ConnectivityDiagnosticsManagerTest { @Test public void testConnectivityReportEquals() { assertEquals(createSampleConnectivityReport(), createSampleConnectivityReport()); assertEquals(createDefaultConnectivityReport(), createDefaultConnectivityReport()); final ConnectivityReport defaultReport = createDefaultConnectivityReport(); final ConnectivityReport sampleReport = createSampleConnectivityReport(); assertEquals(sampleReport, createSampleConnectivityReport()); assertEquals(defaultReport, createDefaultConnectivityReport()); final LinkProperties linkProperties = new LinkProperties(); linkProperties.setInterfaceName(INTERFACE_NAME); final NetworkCapabilities networkCapabilities = new NetworkCapabilities(); networkCapabilities.addCapability(NetworkCapabilities.NET_CAPABILITY_IMS); final PersistableBundle bundle = new PersistableBundle(); bundle.putString(BUNDLE_KEY, BUNDLE_VALUE); final LinkProperties linkProperties = sampleReport.getLinkProperties(); final NetworkCapabilities networkCapabilities = sampleReport.getNetworkCapabilities(); final PersistableBundle bundle = sampleReport.getAdditionalInfo(); assertNotEquals( createDefaultConnectivityReport(), Loading Loading @@ -206,39 +203,104 @@ public class ConnectivityDiagnosticsManagerTest { } private DataStallReport createSampleDataStallReport() { final LinkProperties linkProperties = new LinkProperties(); linkProperties.setInterfaceName(INTERFACE_NAME); final PersistableBundle bundle = new PersistableBundle(); bundle.putString(BUNDLE_KEY, BUNDLE_VALUE); return new DataStallReport(new Network(NET_ID), TIMESTAMP, DETECTION_METHOD, bundle); final NetworkCapabilities networkCapabilities = new NetworkCapabilities(); networkCapabilities.addCapability(NetworkCapabilities.NET_CAPABILITY_IMS); return new DataStallReport( new Network(NET_ID), TIMESTAMP, DETECTION_METHOD, linkProperties, networkCapabilities, bundle); } private DataStallReport createDefaultDataStallReport() { return new DataStallReport(new Network(0), 0L, 0, PersistableBundle.EMPTY); return new DataStallReport( new Network(0), 0L, 0, new LinkProperties(), new NetworkCapabilities(), PersistableBundle.EMPTY); } @Test public void testDataStallReportEquals() { assertEquals(createSampleDataStallReport(), createSampleDataStallReport()); assertEquals(createDefaultDataStallReport(), createDefaultDataStallReport()); final DataStallReport defaultReport = createDefaultDataStallReport(); final DataStallReport sampleReport = createSampleDataStallReport(); assertEquals(sampleReport, createSampleDataStallReport()); assertEquals(defaultReport, createDefaultDataStallReport()); final PersistableBundle bundle = new PersistableBundle(); bundle.putString(BUNDLE_KEY, BUNDLE_VALUE); final LinkProperties linkProperties = sampleReport.getLinkProperties(); final NetworkCapabilities networkCapabilities = sampleReport.getNetworkCapabilities(); final PersistableBundle bundle = sampleReport.getStallDetails(); assertNotEquals( createDefaultDataStallReport(), new DataStallReport(new Network(NET_ID), 0L, 0, PersistableBundle.EMPTY)); defaultReport, new DataStallReport( new Network(NET_ID), 0L, 0, new LinkProperties(), new NetworkCapabilities(), PersistableBundle.EMPTY)); assertNotEquals( defaultReport, new DataStallReport( new Network(0), TIMESTAMP, 0, new LinkProperties(), new NetworkCapabilities(), PersistableBundle.EMPTY)); assertNotEquals( createDefaultDataStallReport(), new DataStallReport(new Network(0), TIMESTAMP, 0, PersistableBundle.EMPTY)); defaultReport, new DataStallReport( new Network(0), 0L, DETECTION_METHOD, new LinkProperties(), new NetworkCapabilities(), PersistableBundle.EMPTY)); assertNotEquals( createDefaultDataStallReport(), new DataStallReport(new Network(0), 0L, DETECTION_METHOD, PersistableBundle.EMPTY)); defaultReport, new DataStallReport( new Network(0), 0L, 0, linkProperties, new NetworkCapabilities(), PersistableBundle.EMPTY)); assertNotEquals( defaultReport, new DataStallReport( new Network(0), 0L, 0, new LinkProperties(), networkCapabilities, PersistableBundle.EMPTY)); assertNotEquals( createDefaultDataStallReport(), new DataStallReport(new Network(0), 0L, 0, bundle)); defaultReport, new DataStallReport( new Network(0), 0L, 0, new LinkProperties(), new NetworkCapabilities(), bundle)); } @Test public void testDataStallReportParcelUnparcel() { assertParcelSane(createSampleDataStallReport(), 4); assertParcelSane(createSampleDataStallReport(), 6); } @Test Loading