From df9b55b5ae330020563a98d55a4ad55fee430958 Mon Sep 17 00:00:00 2001 From: cretin45 Date: Thu, 19 Feb 2015 12:50:15 -0800 Subject: CaptivePortalLogin: Add functionality for SetupWizard Change-Id: I9ccb7ee5e8882acfaa6afc5cd9efa9211058ed60 --- packages/CaptivePortalLogin/AndroidManifest.xml | 4 ++++ .../CaptivePortalLoginActivity.java | 27 ++++++++++++++++++++++ 2 files changed, 31 insertions(+) (limited to 'packages/CaptivePortalLogin') diff --git a/packages/CaptivePortalLogin/AndroidManifest.xml b/packages/CaptivePortalLogin/AndroidManifest.xml index aea8585..2e73119 100644 --- a/packages/CaptivePortalLogin/AndroidManifest.xml +++ b/packages/CaptivePortalLogin/AndroidManifest.xml @@ -32,6 +32,10 @@ + + + + diff --git a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java index 0fe5509..ba77891 100644 --- a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java +++ b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java @@ -22,6 +22,7 @@ import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.net.CaptivePortal; +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.Uri; import android.net.http.SslError; import android.os.Bundle; import android.provider.Settings; +import android.text.TextUtils; import android.util.ArrayMap; import android.util.Log; import android.util.TypedValue; @@ -57,6 +59,10 @@ import java.util.Random; public class CaptivePortalLoginActivity extends Activity { private static final String TAG = "CaptivePortalLogin"; private static final String DEFAULT_SERVER = "connectivitycheck.gstatic.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; private enum Result { DISMISSED, UNWANTED, WANTED_AS_IS }; @@ -81,11 +87,26 @@ public class CaptivePortalLoginActivity extends Activity { } catch (MalformedURLException e) { // System misconfigured, bail out in a way that at least provides network access. Log.e(TAG, "Invalid captive portal URL, server=" + server); + setResult(Activity.RESULT_CANCELED); done(Result.WANTED_AS_IS); } mNetwork = getIntent().getParcelableExtra(ConnectivityManager.EXTRA_NETWORK); mCaptivePortal = getIntent().getParcelableExtra(ConnectivityManager.EXTRA_CAPTIVE_PORTAL); + 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)); + } + } + // Also initializes proxy system properties. mCm.bindProcessToNetwork(mNetwork); @@ -165,6 +186,7 @@ public class CaptivePortalLoginActivity extends Activity { mCaptivePortal.useNetwork(); break; } + setResult(Activity.RESULT_OK); finish(); } @@ -298,6 +320,11 @@ public class CaptivePortalLoginActivity extends Activity { } else if (mPagesLoaded == 2) { // Prevent going back to empty first page. view.clearHistory(); + } else { + if (TextUtils.isEmpty(view.getUrl()) || view.getUrl().contains("text/html")) { + setResult(Activity.RESULT_CANCELED); + finish(); + } } testForCaptivePortal(); } -- cgit v1.1