Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dbeddfdb authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN Committed by Chiachang Wang
Browse files

Add startCaptivePortalApp to system API

The API is already used by settings and should be usable by setup
wizards. It is the only way for a caller outside of the system_server to
trigger the captive portal application.

The API is already CTS tested in android.net.cts.CaptivePortalTest.

Fixes: 182871577
Test: atest CtsNetTestCases:android.net.cts.CaptivePortalTest
Change-Id: Ie8d9a546b54524ba837715baa94a07d1f993d8d3
parent 7af6a2e9
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package android.net {
    method @RequiresPermission(android.Manifest.permission.NETWORK_STACK) public void setGlobalProxy(@Nullable android.net.ProxyInfo);
    method @RequiresPermission(android.Manifest.permission.NETWORK_STACK) public void setProfileNetworkPreference(@NonNull android.os.UserHandle, int, @Nullable java.util.concurrent.Executor, @Nullable Runnable);
    method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_TEST_NETWORKS, android.Manifest.permission.NETWORK_STACK}) public void simulateDataStall(int, long, @NonNull android.net.Network, @NonNull android.os.PersistableBundle);
    method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void startCaptivePortalApp(@NonNull android.net.Network);
    method public void systemReady();
    field public static final String PRIVATE_DNS_MODE_OFF = "off";
    field public static final String PRIVATE_DNS_MODE_OPPORTUNISTIC = "opportunistic";
+10 −2
Original line number Diff line number Diff line
@@ -4461,12 +4461,20 @@ public class ConnectivityManager {
    /**
     * Requests that the system open the captive portal app on the specified network.
     *
     * <p>This is to be used on networks where a captive portal was detected, as per
     * {@link NetworkCapabilities#NET_CAPABILITY_CAPTIVE_PORTAL}.
     *
     * @param network The network to log into.
     *
     * @hide
     */
    @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
    public void startCaptivePortalApp(Network network) {
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    @RequiresPermission(anyOf = {
            android.Manifest.permission.NETWORK_SETTINGS,
            android.Manifest.permission.NETWORK_STACK,
            NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK
    })
    public void startCaptivePortalApp(@NonNull Network network) {
        try {
            mService.startCaptivePortalApp(network);
        } catch (RemoteException e) {