diff options
Diffstat (limited to 'packages/CaptivePortalLogin')
6 files changed, 72 insertions, 0 deletions
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 @@ <action android:name="android.net.conn.CAPTIVE_PORTAL"/> <category android:name="android.intent.category.DEFAULT"/> </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> diff --git a/packages/CaptivePortalLogin/res/values-ast-rES/strings.xml b/packages/CaptivePortalLogin/res/values-ast-rES/strings.xml new file mode 100644 index 0000000..5030302 --- /dev/null +++ b/packages/CaptivePortalLogin/res/values-ast-rES/strings.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<!--Generated by crowdin.com--> +<resources> + <string name="app_name">CaptivePortalLogin</string> + <string name="action_use_network">Usar esta rede tal cual</string> + <string name="action_do_not_use_network">Nun usar esta rede</string> +</resources> diff --git a/packages/CaptivePortalLogin/res/values-be/strings.xml b/packages/CaptivePortalLogin/res/values-be/strings.xml new file mode 100644 index 0000000..33dc69a --- /dev/null +++ b/packages/CaptivePortalLogin/res/values-be/strings.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<!--Generated by crowdin.com--> +<resources> + <string name="app_name">CaptivePortalLogin</string> + <string name="action_use_network">Выкарыстоўваць гэтую сетку</string> + <string name="action_do_not_use_network">Не выкарыстоўваць гэтую сетку</string> +</resources> diff --git a/packages/CaptivePortalLogin/res/values-ku/strings.xml b/packages/CaptivePortalLogin/res/values-ku/strings.xml new file mode 100644 index 0000000..574b14f --- /dev/null +++ b/packages/CaptivePortalLogin/res/values-ku/strings.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<!--Generated by crowdin.com--> +<resources> + <string name="action_use_network">بەکارهێنانی ئەم تۆڕە وەکو</string> + <string name="action_do_not_use_network">ئەم تۆڕە بەکارمەهێنە</string> +</resources> diff --git a/packages/CaptivePortalLogin/res/values-lb/strings.xml b/packages/CaptivePortalLogin/res/values-lb/strings.xml new file mode 100644 index 0000000..3b783cb --- /dev/null +++ b/packages/CaptivePortalLogin/res/values-lb/strings.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<!--Generated by crowdin.com--> +<resources> + <string name="app_name">CaptivePortalLogin</string> + <string name="action_use_network">Dëst Netzwierk benotzen als</string> + <string name="action_do_not_use_network">Dëst Netzwierk net benotzen</string> +</resources> diff --git a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java index 0fe5509..ed9c111 100644 --- a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java +++ b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java @@ -20,8 +20,10 @@ import android.app.Activity; import android.app.LoadedApk; import android.content.Context; import android.content.Intent; +import android.content.res.ColorStateList; 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 +34,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 +60,11 @@ 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 String EXTRA_PROGRESS_COLOR = "progress_bar_color"; + private static final int SOCKET_TIMEOUT_MS = 10000; private enum Result { DISMISSED, UNWANTED, WANTED_AS_IS }; @@ -68,6 +76,7 @@ public class CaptivePortalLoginActivity extends Activity { private ConnectivityManager mCm; private boolean mLaunchBrowser = false; private MyWebViewClient mWebViewClient; + private String mResponseToken; @Override protected void onCreate(Bundle savedInstanceState) { @@ -81,11 +90,27 @@ 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); } + mResponseToken = getIntent().getStringExtra(Intent.EXTRA_TEXT); 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); @@ -95,6 +120,14 @@ public class CaptivePortalLoginActivity extends Activity { getActionBar().setDisplayShowHomeEnabled(false); + ProgressBar myProgressBar = (ProgressBar) findViewById(R.id.progress_bar); + if (intent.hasExtra(EXTRA_PROGRESS_COLOR)) { + int color = intent.getIntExtra(EXTRA_PROGRESS_COLOR, -1); + if (color != -1) { + myProgressBar.setProgressTintList(ColorStateList.valueOf(color)); + } + } + // Exit app if Network disappears. final NetworkCapabilities networkCapabilities = mCm.getNetworkCapabilities(mNetwork); if (networkCapabilities == null) { @@ -165,6 +198,9 @@ public class CaptivePortalLoginActivity extends Activity { mCaptivePortal.useNetwork(); break; } + Intent intent = new Intent(); + intent.putExtra(Intent.EXTRA_TEXT, mResponseToken); + setResult(Activity.RESULT_OK, intent); finish(); } @@ -298,6 +334,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(); } |