summaryrefslogtreecommitdiffstats
path: root/packages/CaptivePortalLogin
diff options
context:
space:
mode:
authorPaul Jensen <pauljensen@google.com>2015-05-06 07:39:36 -0400
committerPaul Jensen <pauljensen@google.com>2015-05-06 07:39:36 -0400
commit5344a4abdf239a19485a9c858b6cc3be96002eac (patch)
tree7a537cb7a87e43d09caf4c944300e81c3adcc285 /packages/CaptivePortalLogin
parent424681e43e454bfcbceb863ddccb875ea57ec26f (diff)
downloadframeworks_base-5344a4abdf239a19485a9c858b6cc3be96002eac.zip
frameworks_base-5344a4abdf239a19485a9c858b6cc3be96002eac.tar.gz
frameworks_base-5344a4abdf239a19485a9c858b6cc3be96002eac.tar.bz2
Add URL bar to captive portal login app.
Keeps the user informed whether site is using SSL and what URL is being displayed in an attempt to avoid phishing. The progress bar is now always visible as it provides a border between the URL bar and WebView. Bug:20322548 Change-Id: I001a4501a02cc79080b0f37f0a304c609bbd7664
Diffstat (limited to 'packages/CaptivePortalLogin')
-rw-r--r--packages/CaptivePortalLogin/res/layout/activity_captive_portal_login.xml7
-rw-r--r--packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java15
2 files changed, 17 insertions, 5 deletions
diff --git a/packages/CaptivePortalLogin/res/layout/activity_captive_portal_login.xml b/packages/CaptivePortalLogin/res/layout/activity_captive_portal_login.xml
index a11bed0..2f0a411 100644
--- a/packages/CaptivePortalLogin/res/layout/activity_captive_portal_login.xml
+++ b/packages/CaptivePortalLogin/res/layout/activity_captive_portal_login.xml
@@ -10,6 +10,13 @@
android:layout_height="match_parent"
android:orientation="vertical" >
+ <TextView
+ android:id="@+id/url_bar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textSize="20sp"
+ android:singleLine="true" />
+
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="match_parent"
diff --git a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
index b86fc4b..1019e6c 100644
--- a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
+++ b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
@@ -35,13 +35,13 @@ import android.util.ArrayMap;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
-import android.view.View;
import android.webkit.SslErrorHandler;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
+import android.widget.TextView;
import java.io.IOException;
import java.net.HttpURLConnection;
@@ -221,6 +221,7 @@ public class CaptivePortalLoginActivity extends Activity {
}
private class MyWebViewClient extends WebViewClient {
+ private static final String INTERNAL_ASSETS = "file:///android_asset/";
private boolean firstPageLoad = true;
@Override
@@ -240,6 +241,12 @@ public class CaptivePortalLoginActivity extends Activity {
view.loadUrl(mURL.toString());
return;
}
+ // For internally generated pages, leave URL bar listing prior URL as this is the URL
+ // the page refers to.
+ if (!url.startsWith(INTERNAL_ASSETS)) {
+ final TextView myUrlBar = (TextView) findViewById(R.id.url_bar);
+ myUrlBar.setText(url);
+ }
testForCaptivePortal();
}
@@ -252,17 +259,15 @@ public class CaptivePortalLoginActivity extends Activity {
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
Log.w(TAG, "SSL error; displaying broken lock icon.");
- view.loadDataWithBaseURL("file:///android_asset/", SSL_ERROR_HTML, "text/HTML",
- "UTF-8", null);
+ view.loadDataWithBaseURL(INTERNAL_ASSETS, SSL_ERROR_HTML, "text/HTML", "UTF-8", null);
}
}
private class MyWebChromeClient extends WebChromeClient {
@Override
public void onProgressChanged(WebView view, int newProgress) {
- ProgressBar myProgressBar = (ProgressBar) findViewById(R.id.progress_bar);
+ final ProgressBar myProgressBar = (ProgressBar) findViewById(R.id.progress_bar);
myProgressBar.setProgress(newProgress);
- myProgressBar.setVisibility(newProgress == 100 ? View.GONE : View.VISIBLE);
}
}
}