Add SystemApi for captive portal metrics

The metrics go through NetworkMonitor in the NetworkStack so that they
can be upgraded to new metrics in the future.

Test: flashed, captive portal login works, metrics shown in events log
Bug: 112869080
(Cherry-pick of aosp/890004)

Change-Id: I4bccfbd87bae5b2d65e45c7a5918aa45ab5d76e8
This commit is contained in:
Remi NGUYEN VAN
2019-01-30 22:01:20 +09:00
parent d67edd1540
commit 6bd9193a3d
2 changed files with 19 additions and 0 deletions

View File

@@ -117,4 +117,17 @@ public class CaptivePortal implements Parcelable {
} catch (RemoteException e) {
}
}
/**
* Log a captive portal login event.
* @hide
*/
@SystemApi
@TestApi
public void logEvent(int eventId, String packageName) {
try {
ICaptivePortal.Stub.asInterface(mBinder).logEvent(eventId, packageName);
} catch (RemoteException e) {
}
}
}

View File

@@ -144,6 +144,7 @@ import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.IBatteryStats;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.net.LegacyVpnInfo;
import com.android.internal.net.VpnConfig;
import com.android.internal.net.VpnInfo;
@@ -2683,6 +2684,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
EVENT_PROVISIONING_NOTIFICATION, PROVISIONING_NOTIFICATION_HIDE,
mNai.network.netId));
}
@Override
public void logCaptivePortalLoginEvent(int eventId, String packageName) {
new MetricsLogger().action(eventId, packageName);
}
}
private boolean networkRequiresValidation(NetworkAgentInfo nai) {