Make ConnectivityMetricsLogger and related classes @SystemApi
Bug: 25691077
Change-Id: Ia98d0a52a9541d9ae773be2b0e962d609f9dd7ee
diff --git a/api/system-current.txt b/api/system-current.txt
index 915ceb2..26ea220 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -25315,6 +25315,41 @@
method public void onTetheringStarted();
}
+ public final class ConnectivityMetricsEvent implements android.os.Parcelable {
+ ctor public ConnectivityMetricsEvent(long, int, int, android.os.Parcelable);
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.net.ConnectivityMetricsEvent> CREATOR;
+ field public final int componentTag;
+ field public final android.os.Parcelable data;
+ field public final int eventTag;
+ field public final long timestamp;
+ }
+
+ public static final class ConnectivityMetricsEvent.Reference implements android.os.Parcelable {
+ ctor public ConnectivityMetricsEvent.Reference(long);
+ method public int describeContents();
+ method public long getValue();
+ method public void readFromParcel(android.os.Parcel);
+ method public void setValue(long);
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.net.ConnectivityMetricsEvent.Reference> CREATOR;
+ }
+
+ public class ConnectivityMetricsLogger {
+ ctor public ConnectivityMetricsLogger();
+ method public void logEvent(long, int, int, android.os.Parcelable);
+ field public static final int COMPONENT_TAG_BLUETOOTH = 1; // 0x1
+ field public static final int COMPONENT_TAG_CONNECTIVITY = 0; // 0x0
+ field public static final int COMPONENT_TAG_TELECOM = 3; // 0x3
+ field public static final int COMPONENT_TAG_TELEPHONY = 4; // 0x4
+ field public static final int COMPONENT_TAG_WIFI = 2; // 0x2
+ field public static final java.lang.String CONNECTIVITY_METRICS_LOGGER_SERVICE = "connectivity_metrics_logger";
+ field public static final java.lang.String DATA_KEY_EVENTS_COUNT = "count";
+ field public static final int NUMBER_OF_COMPONENTS = 5; // 0x5
+ field public static final int TAG_SKIPPED_EVENTS = -1; // 0xffffffff
+ }
+
public class Credentials {
ctor public Credentials(int, int, int);
method public int getGid();
diff --git a/core/java/android/net/ConnectivityMetricsEvent.java b/core/java/android/net/ConnectivityMetricsEvent.java
index b5d67d3..5153ba9 100644
--- a/core/java/android/net/ConnectivityMetricsEvent.java
+++ b/core/java/android/net/ConnectivityMetricsEvent.java
@@ -16,10 +16,12 @@
package android.net;
+import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
/** {@hide} */
+@SystemApi
public final class ConnectivityMetricsEvent implements Parcelable {
/** The time when this event was collected, as returned by System.currentTimeMillis(). */
@@ -80,12 +82,13 @@
}
/** {@hide} */
- public static class Reference implements Parcelable {
+ @SystemApi
+ public final static class Reference implements Parcelable {
- public long value;
+ private long mValue;
public Reference(long ref) {
- this.value = ref;
+ this.mValue = ref;
}
/** Implement the Parcelable interface */
@@ -109,11 +112,19 @@
/** Implement the Parcelable interface */
@Override
public void writeToParcel(Parcel dest, int flags) {
- dest.writeLong(value);
+ dest.writeLong(mValue);
}
public void readFromParcel(Parcel in) {
- value = in.readLong();
+ mValue = in.readLong();
+ }
+
+ public long getValue() {
+ return mValue;
+ }
+
+ public void setValue(long val) {
+ mValue = val;
}
}
}
diff --git a/core/java/android/net/ConnectivityMetricsLogger.java b/core/java/android/net/ConnectivityMetricsLogger.java
index eafb8ac..b49cc2b 100644
--- a/core/java/android/net/ConnectivityMetricsLogger.java
+++ b/core/java/android/net/ConnectivityMetricsLogger.java
@@ -15,6 +15,7 @@
*/
package android.net;
+import android.annotation.SystemApi;
import android.os.Bundle;
import android.os.Parcelable;
import android.os.RemoteException;
@@ -22,6 +23,7 @@
import android.util.Log;
/** {@hide} */
+@SystemApi
public class ConnectivityMetricsLogger {
private static String TAG = "ConnectivityMetricsLogger";
private static final boolean DBG = true;
diff --git a/services/core/java/com/android/server/connectivity/MetricsLoggerService.java b/services/core/java/com/android/server/connectivity/MetricsLoggerService.java
index f91db78..6632765 100644
--- a/services/core/java/com/android/server/connectivity/MetricsLoggerService.java
+++ b/services/core/java/com/android/server/connectivity/MetricsLoggerService.java
@@ -291,14 +291,14 @@
*/
public ConnectivityMetricsEvent[] getEvents(ConnectivityMetricsEvent.Reference reference) {
enforceDumpPermission();
- long ref = reference.value;
+ long ref = reference.getValue();
if (VDBG) Log.v(TAG, "getEvents(" + ref + ")");
ConnectivityMetricsEvent[] result;
synchronized (mEvents) {
if (ref > mLastEventReference) {
Log.e(TAG, "Invalid reference");
- reference.value = mLastEventReference;
+ reference.setValue(mLastEventReference);
return null;
}
if (ref < mLastEventReference - mEvents.size()) {
@@ -320,7 +320,7 @@
}
}
- reference.value = mLastEventReference;
+ reference.setValue(mLastEventReference);
return result;
}