summaryrefslogtreecommitdiffstats
path: root/packages/CaptivePortalLogin
diff options
context:
space:
mode:
Diffstat (limited to 'packages/CaptivePortalLogin')
-rw-r--r--packages/CaptivePortalLogin/AndroidManifest.xml4
-rw-r--r--packages/CaptivePortalLogin/res/values-ast-rES/strings.xml7
-rw-r--r--packages/CaptivePortalLogin/res/values-be/strings.xml7
-rw-r--r--packages/CaptivePortalLogin/res/values-ku/strings.xml6
-rw-r--r--packages/CaptivePortalLogin/res/values-lb/strings.xml7
-rw-r--r--packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java41
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();
}