Merge "Add SystemApi for captive portal metrics"
This commit is contained in:
@@ -3058,6 +3058,7 @@ package android.net {
|
||||
|
||||
public class CaptivePortal implements android.os.Parcelable {
|
||||
ctor public CaptivePortal(android.os.IBinder);
|
||||
method public void logEvent(int, String);
|
||||
method public void useNetwork();
|
||||
field public static final int APP_RETURN_DISMISSED = 0; // 0x0
|
||||
field public static final int APP_RETURN_UNWANTED = 1; // 0x1
|
||||
|
||||
@@ -600,6 +600,7 @@ package android.net {
|
||||
|
||||
public class CaptivePortal implements android.os.Parcelable {
|
||||
ctor public CaptivePortal(android.os.IBinder);
|
||||
method public void logEvent(int, String);
|
||||
method public void useNetwork();
|
||||
field public static final int APP_RETURN_DISMISSED = 0; // 0x0
|
||||
field public static final int APP_RETURN_UNWANTED = 1; // 0x1
|
||||
|
||||
@@ -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) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,4 +22,5 @@ package android.net;
|
||||
*/
|
||||
oneway interface ICaptivePortal {
|
||||
void appResponse(int response);
|
||||
void logEvent(int eventId, String packageName);
|
||||
}
|
||||
|
||||
@@ -26,4 +26,5 @@ oneway interface INetworkMonitorCallbacks {
|
||||
void notifyPrivateDnsConfigResolved(in PrivateDnsConfigParcel config);
|
||||
void showProvisioningNotification(String action);
|
||||
void hideProvisioningNotification();
|
||||
void logCaptivePortalLoginEvent(int eventId, String packageName);
|
||||
}
|
||||
@@ -59,7 +59,6 @@ import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -106,11 +105,11 @@ public class CaptivePortalLoginActivity extends Activity {
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
mCaptivePortal = getIntent().getParcelableExtra(ConnectivityManager.EXTRA_CAPTIVE_PORTAL);
|
||||
logMetricsEvent(MetricsEvent.ACTION_CAPTIVE_PORTAL_LOGIN_ACTIVITY);
|
||||
|
||||
mCm = ConnectivityManager.from(this);
|
||||
mNetwork = getIntent().getParcelableExtra(ConnectivityManager.EXTRA_NETWORK);
|
||||
mCaptivePortal = getIntent().getParcelableExtra(ConnectivityManager.EXTRA_CAPTIVE_PORTAL);
|
||||
mUserAgent =
|
||||
getIntent().getStringExtra(ConnectivityManager.EXTRA_CAPTIVE_PORTAL_USER_AGENT);
|
||||
mUrl = getUrl();
|
||||
@@ -636,7 +635,7 @@ public class CaptivePortalLoginActivity extends Activity {
|
||||
}
|
||||
|
||||
private void logMetricsEvent(int event) {
|
||||
MetricsLogger.action(this, event, getPackageName());
|
||||
mCaptivePortal.logEvent(event, getPackageName());
|
||||
}
|
||||
|
||||
private static final SparseArray<String> SSL_ERRORS = new SparseArray<>();
|
||||
|
||||
@@ -687,6 +687,15 @@ public class NetworkMonitor extends StateMachine {
|
||||
}
|
||||
sendMessage(CMD_CAPTIVE_PORTAL_APP_FINISHED, response);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void logEvent(int eventId, String packageName)
|
||||
throws RemoteException {
|
||||
mContext.enforceCallingPermission(
|
||||
android.Manifest.permission.CONNECTIVITY_INTERNAL,
|
||||
"CaptivePortal");
|
||||
mCallback.logCaptivePortalLoginEvent(eventId, packageName);
|
||||
}
|
||||
}));
|
||||
final CaptivePortalProbeResult probeRes = mLastPortalProbeResult;
|
||||
intent.putExtra(EXTRA_CAPTIVE_PORTAL_URL, probeRes.detectUrl);
|
||||
|
||||
@@ -145,6 +145,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;
|
||||
@@ -2684,6 +2685,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) {
|
||||
|
||||
Reference in New Issue
Block a user