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

Commit 72d54d75 authored by cretin45's avatar cretin45
Browse files

CaptivePortalLogin: Add functionality for SetupWizard

Change-Id: I9ccb7ee5e8882acfaa6afc5cd9efa9211058ed60
parent 99406c4b
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>
+28 −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.LinkProperties;
@@ -33,6 +34,7 @@ import android.net.Uri;
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 = "clients3.google.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.
@@ -80,9 +86,25 @@ public class CaptivePortalLoginActivity extends Activity {
        try {
            mURL = new URL("http://" + server + "/generate_204");
        } catch (MalformedURLException e) {
            setResult(Activity.RESULT_CANCELED);
            done(true);
        }

        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));
            }
        }


        mNetId = Integer.parseInt(getIntent().getStringExtra(Intent.EXTRA_TEXT));
        final Network network = new Network(mNetId);
        ConnectivityManager.setProcessDefaultNetwork(network);
@@ -171,6 +193,7 @@ public class CaptivePortalLoginActivity extends Activity {
        intent.putExtra(Intent.EXTRA_TEXT, String.valueOf(mNetId));
        intent.putExtra(LOGGED_IN_RESULT, use_network ? "1" : "0");
        sendBroadcast(intent);
        setResult(Activity.RESULT_OK);
        finish();
    }

@@ -252,6 +275,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();
        }