Files
android-oss/config/KSWebViewClient.java
lisa luo 9675a71a0c Improve webviews for updates (#61)
* initial external url tracking; add test

* refactor to add external link delegate method to client

* add external link logic to update activity

* fix up back nav on webviews

* Add context to external link event

* Add back logic to WebViewActivity

The base for a few of our activities

* Add request handler for another update requests

Pings the VM on another index requests to properly display sequence title and share data

* Add tests for new request logic

Also includes a new default intent because hey sometimes we just need a default intent

* Handle additional update url requests

* Make shareIntent output a PublishSubject to stay hidden on rotation

* Add additional index url logic to ProjectUpdates

* Rename initialProject -> Project since the project will never change

* Add new delegate method to config

* Remove unused uri helpers, add unit test for KSUri

* remove redundant null filters
2017-02-22 18:05:30 -05:00

66 lines
2.1 KiB
Java

package com.kickstarter.services;
import android.graphics.Bitmap;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.kickstarter.libs.FormContents;
import java.util.List;
import okhttp3.OkHttpClient;
public final class KSWebViewClient extends WebViewClient {
public interface Delegate {
void webViewOnPageStarted(final @NonNull KSWebViewClient webViewClient, final @Nullable String url);
void webViewOnPageFinished(final @NonNull KSWebViewClient webViewClient, final @Nullable String url);
void webViewPageIntercepted(final @NonNull KSWebViewClient webViewClient, final @NonNull String url);
void webViewExternalLinkActivated(final @NonNull KSWebViewClient webViewClient, final @NonNull String url);
}
public KSWebViewClient(final @NonNull OkHttpClient client, final @NonNull String webEndpoint) {
this(client, webEndpoint, null);
}
public KSWebViewClient(final @NonNull OkHttpClient client, final @NonNull String webEndpoint,
final @Nullable Delegate delegate) {
}
public void setDelegate(final @Nullable Delegate delegate) {
}
public @Nullable Delegate delegate() {
return null;
}
@Override
public void onPageStarted(final @Nullable WebView view, final @Nullable String url, final @Nullable Bitmap favicon) {
}
@Override
public void onPageFinished(final @NonNull WebView view, final @NonNull String url) {
}
@Override
public boolean shouldOverrideUrlLoading(final @NonNull WebView view, final @NonNull String url) {
return false;
}
@Override
public WebResourceResponse shouldInterceptRequest(final @NonNull WebView view, final @NonNull String url) {
return null;
}
// The order of request handlers is important - we iterate through the request handlers
// sequentially until a match is found.
public void registerRequestHandlers(final @NonNull List<RequestHandler> requestHandlers) {
}
public void setFormContents(final @NonNull FormContents formContents) {
}
}