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

Commit 3d1f6dcc authored by cretin45's avatar cretin45 Committed by Steve Kondik
Browse files

CaptivePortalLogin: Add functionality for SetupWizard

Change-Id: I9ccb7ee5e8882acfaa6afc5cd9efa9211058ed60
parent bd1788f4
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -32,6 +32,10 @@
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:mimeType="text/plain"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.net.action.captive_portal_login"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
    </application>
</manifest>
+27 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.app.LoadedApk;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.ColorDrawable;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
import android.net.Network;
@@ -32,6 +33,7 @@ import android.net.http.SslError;
import android.os.Bundle;
import android.provider.Settings;
import android.provider.Settings.Global;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.Log;
import android.view.Menu;
@@ -56,6 +58,10 @@ import java.lang.reflect.Method;
public class CaptivePortalLoginActivity extends Activity {
    private static final String TAG = "CaptivePortalLogin";
    private static final String DEFAULT_SERVER = "connectivitycheck.android.com";

    private static final String EXTRA_STATUS_BAR_COLOR = "status_bar_color";
    private static final String EXTRA_ACTION_BAR_COLOR = "action_bar_color";

    private static final int SOCKET_TIMEOUT_MS = 10000;

    // Keep this in sync with NetworkMonitor.
@@ -93,9 +99,24 @@ public class CaptivePortalLoginActivity extends Activity {
            mResponseToken = dataUri.getFragment();
        } catch (MalformedURLException|NumberFormatException e) {
            // System misconfigured, bail out in a way that at least provides network access.
            setResult(Activity.RESULT_CANCELED);
            done(CAPTIVE_PORTAL_APP_RETURN_WANTED_AS_IS);
        }

        final Intent intent = getIntent();
        if (intent.hasExtra(EXTRA_STATUS_BAR_COLOR)) {
            int color = intent.getIntExtra(EXTRA_STATUS_BAR_COLOR, -1);
            if (color != -1) {
                getWindow().setStatusBarColor(color);
            }
        }
        if (intent.hasExtra(EXTRA_ACTION_BAR_COLOR)) {
            int color = intent.getIntExtra(EXTRA_ACTION_BAR_COLOR, -1);
            if (color != -1) {
                getActionBar().setBackgroundDrawable(new ColorDrawable(color));
            }
        }

        final ConnectivityManager cm = ConnectivityManager.from(this);
        final Network network = new Network(mNetId);
        // Also initializes proxy system properties.
@@ -169,6 +190,7 @@ public class CaptivePortalLoginActivity extends Activity {
        intent.putExtra(LOGGED_IN_RESULT, String.valueOf(result));
        intent.putExtra(RESPONSE_TOKEN, mResponseToken);
        sendBroadcast(intent);
        setResult(Activity.RESULT_OK);
        finish();
    }

@@ -250,6 +272,11 @@ public class CaptivePortalLoginActivity extends Activity {
                // Load the real page.
                view.loadUrl(mURL.toString());
                return;
            } else {
                if (TextUtils.isEmpty(view.getUrl()) || view.getUrl().contains("text/html")) {
                    setResult(Activity.RESULT_CANCELED);
                    finish();
                }
            }
            testForCaptivePortal();
        }