Add the ability to refresh to the captive portal app.
Bug: 69840796 Test: manual created a small app that brings up the captive portal app, checked that pulling down does show the refresh spinner, refresh the page, and hide the spinner when refreshed. Checked that it works multiple times in a row. Change-Id: Ieefdaffa9325b0c5f1b02ab6052c29a381f3a4d4
This commit is contained in:
parent
59787b4247
commit
8fa6ea3545
@ -2,6 +2,7 @@ LOCAL_PATH:= $(call my-dir)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4
|
||||
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, src)
|
||||
|
||||
|
@ -27,12 +27,17 @@
|
||||
android:layout_height="wrap_content" />
|
||||
</FrameLayout>
|
||||
|
||||
<WebView
|
||||
android:id="@+id/webview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentBottom="false"
|
||||
android:layout_alignParentRight="false" />
|
||||
<android.support.v4.widget.SwipeRefreshLayout
|
||||
android:id="@+id/swipe_refresh"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<WebView
|
||||
android:id="@+id/webview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentBottom="false"
|
||||
android:layout_alignParentRight="false" />
|
||||
</android.support.v4.widget.SwipeRefreshLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</FrameLayout>
|
||||
|
@ -34,6 +34,7 @@ import android.net.http.SslError;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.Log;
|
||||
import android.util.TypedValue;
|
||||
@ -88,6 +89,7 @@ public class CaptivePortalLoginActivity extends Activity {
|
||||
private ConnectivityManager mCm;
|
||||
private boolean mLaunchBrowser = false;
|
||||
private MyWebViewClient mWebViewClient;
|
||||
private SwipeRefreshLayout mSwipeRefreshLayout;
|
||||
// Ensures that done() happens once exactly, handling concurrent callers with atomic operations.
|
||||
private final AtomicBoolean isDone = new AtomicBoolean(false);
|
||||
|
||||
@ -159,6 +161,13 @@ public class CaptivePortalLoginActivity extends Activity {
|
||||
// Start initial page load so WebView finishes loading proxy settings.
|
||||
// Actual load of mUrl is initiated by MyWebViewClient.
|
||||
webview.loadData("", "text/html", null);
|
||||
|
||||
mSwipeRefreshLayout = findViewById(R.id.swipe_refresh);
|
||||
mSwipeRefreshLayout.setOnRefreshListener(() -> {
|
||||
webview.reload();
|
||||
mSwipeRefreshLayout.setRefreshing(true);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Find WebView's proxy BroadcastReceiver and prompt it to read proxy system properties.
|
||||
@ -393,6 +402,7 @@ public class CaptivePortalLoginActivity extends Activity {
|
||||
public void onPageFinished(WebView view, String url) {
|
||||
mPagesLoaded++;
|
||||
getProgressBar().setVisibility(View.INVISIBLE);
|
||||
mSwipeRefreshLayout.setRefreshing(false);
|
||||
if (mPagesLoaded == 1) {
|
||||
// Now that WebView has loaded at least one page we know it has read in the proxy
|
||||
// settings. Now prompt the WebView read the Network-specific proxy settings.
|
||||
|
Loading…
x
Reference in New Issue
Block a user