001package com.gigya.android.sdk.ui.plugin;
002
003import android.support.annotation.NonNull;
004import android.support.annotation.Nullable;
005import android.view.View;
006import android.webkit.WebView;
007
008import com.gigya.android.sdk.GigyaPluginCallback;
009import com.gigya.android.sdk.account.models.GigyaAccount;
010
011import java.util.Map;
012
013public interface IGigyaWebBridge<A extends GigyaAccount> {
014
015    void withObfuscation(boolean obfuscation);
016
017    void setInvocationCallback(@NonNull GigyaPluginFragment.IBridgeCallbacks<A> invocationCallback);
018
019    boolean invoke(String action, String method, String queryStringParams);
020
021    boolean invoke(String url);
022
023    void invokeWebViewCallback(String id, String baseInvocation);
024
025    void getIds(String id);
026
027    void isSessionValid(String id);
028
029    void sendRequest(final String callbackId, final String api, Map<String, Object> params);
030
031    void sendOAuthRequest(final String callbackId, String api, Map<String, Object> params);
032
033    void onPluginEvent(Map<String, Object> params);
034
035    void attachTo(@NonNull final WebView webView,
036                  @NonNull final GigyaPluginCallback<A> pluginCallback,
037                  @Nullable View progressView);
038
039    void detachFrom(@NonNull final WebView webView);
040
041}