From 1998d9210b9c6a5c9b6779d4591f39502e67de53 Mon Sep 17 00:00:00 2001 From: divyanshunegi Date: Tue, 11 Apr 2017 12:13:35 +0530 Subject: [PATCH 1/4] fragment changes done --- android/android.iml | 132 +++++++++++++++++- android/local.properties | 5 +- .../oauth/OAuthManagerDialogFragment.java | 64 ++++----- .../fullstack/oauth/OAuthManagerModule.java | 55 +++----- 4 files changed, 174 insertions(+), 82 deletions(-) diff --git a/android/android.iml b/android/android.iml index a162bd1..396a3b2 100644 --- a/android/android.iml +++ b/android/android.iml @@ -1,5 +1,5 @@ - + @@ -8,14 +8,138 @@ + - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/local.properties b/android/local.properties index d9dc6da..ffb1ddd 100644 --- a/android/local.properties +++ b/android/local.properties @@ -7,6 +7,5 @@ # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. -#Fri Sep 02 11:41:31 PDT 2016 -sdk.dir=/usr/local/opt/android-sdk -ndk.dir=/usr/local/opt/android-ndk \ No newline at end of file +#Tue Apr 11 11:36:49 IST 2017 +sdk.dir=/Users/divyanshunegi/Downloads/adt-bundle-mac-x86_64-20140321/sdk diff --git a/android/src/main/java/io/fullstack/oauth/OAuthManagerDialogFragment.java b/android/src/main/java/io/fullstack/oauth/OAuthManagerDialogFragment.java index adead8d..6c06a0f 100644 --- a/android/src/main/java/io/fullstack/oauth/OAuthManagerDialogFragment.java +++ b/android/src/main/java/io/fullstack/oauth/OAuthManagerDialogFragment.java @@ -1,50 +1,40 @@ package io.fullstack.oauth; -import im.delight.android.webview.AdvancedWebView; -import android.app.Dialog; - -import android.net.Uri; -import java.util.Set; -import java.net.URL; -import java.net.MalformedURLException; -import android.text.TextUtils; import android.annotation.SuppressLint; -import android.widget.LinearLayout; -import android.view.Gravity; -import android.os.Build; - import android.app.DialogFragment; -import android.content.DialogInterface; -import android.widget.FrameLayout; - -import android.webkit.WebView; -import android.view.View; -import android.webkit.WebViewClient; +import android.content.Context; import android.content.Intent; +import android.graphics.Bitmap; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.text.TextUtils; +import android.util.DisplayMetrics; +import android.util.Log; +import android.view.Display; import android.view.LayoutInflater; +import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; -import android.content.Context; -import android.util.DisplayMetrics; -import android.view.Display; -import java.lang.reflect.Method; import android.view.WindowManager; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.FrameLayout; -import com.github.scribejava.core.model.OAuth1AccessToken; -import com.github.scribejava.core.model.OAuth1RequestToken; -import android.util.Log; -import android.graphics.Bitmap; -import android.os.Bundle; -import android.app.Fragment; -import java.io.IOException; import com.facebook.react.bridge.ReactContext; +import com.github.scribejava.core.model.OAuth1AccessToken; + +import java.lang.reflect.Method; +import java.util.Set; + +import im.delight.android.webview.AdvancedWebView; public class OAuthManagerDialogFragment extends DialogFragment implements AdvancedWebView.Listener { private static final int WEBVIEW_TAG = 100001; private static final int WIDGET_TAG = 100002; - private static final String TAG = "OAuthManagerDialogFragment"; + private static final String TAG = "OauthFragment"; private OAuthManagerFragmentController mController; private ReactContext mReactContext; @@ -57,7 +47,6 @@ public static final OAuthManagerDialogFragment newInstance( Bundle args = new Bundle(); OAuthManagerDialogFragment frag = new OAuthManagerDialogFragment(reactContext, controller); - return frag; } @@ -90,7 +79,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa // mWebView = (AdvancedWebView) rootView.findViewById(R.id.webview); Log.d(TAG, "Creating webview"); mWebView = new AdvancedWebView(context); - mWebView.setId(WEBVIEW_TAG); +// mWebView.setId(WEBVIEW_TAG); mWebView.setListener(this, this); mWebView.setVisibility(View.VISIBLE); mWebView.getSettings().setJavaScriptEnabled(true); @@ -179,7 +168,6 @@ private boolean interceptUrl(WebView view, String url, boolean loadUrl) { Log.i(TAG, "interceptUrl called with url: " + url); if (isCallbackUri(url, mController.getCallbackUrl())) { mController.getAccessToken(mWebView, url); - return true; } @@ -203,11 +191,11 @@ public void onStart() { Log.d(TAG, "onStart for DialogFragment"); } - @Override - public void onDismiss(final DialogInterface dialog) { - super.onDismiss(dialog); - Log.d(TAG, "Dismissing dialog"); - } +// @Override +// public void onDismiss(final DialogInterface dialog) { +// super.onDismiss(dialog); +// Log.d(TAG, "Dismissing dialog"); +// } // @Override diff --git a/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java b/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java index 7cf8c2b..ebea2c3 100644 --- a/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java +++ b/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java @@ -1,56 +1,38 @@ package io.fullstack.oauth; -import android.util.Log; +import android.app.Activity; +import android.app.FragmentManager; import android.content.Context; -import android.net.Uri; -import android.os.Handler; -import android.content.SharedPreferences; - -import java.net.URL; -import java.net.MalformedURLException; - import android.support.annotation.Nullable; -import android.app.FragmentManager; -import android.support.v4.app.FragmentActivity; -import android.app.Activity; -import android.text.TextUtils; - -import java.io.IOException; -import java.util.Map; -import java.util.Set; -import java.util.Iterator; -import java.util.HashMap; -import java.util.List; -import java.util.ArrayList; +import android.util.Log; import com.facebook.react.bridge.Arguments; -import com.facebook.react.bridge.LifecycleEventListener; +import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.Callback; -import com.facebook.react.bridge.WritableMap; -import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.ReadableArray; -import com.facebook.react.bridge.ReadableType; +import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.ReadableMapKeySetIterator; -import com.facebook.react.bridge.ReactContext; - -import com.github.scribejava.core.builder.api.BaseApi; -import com.github.scribejava.core.model.Verb; - -import com.github.scribejava.core.builder.ServiceBuilder; +import com.facebook.react.bridge.ReadableType; +import com.facebook.react.bridge.WritableMap; import com.github.scribejava.core.model.OAuth1AccessToken; -import com.github.scribejava.core.model.OAuth1RequestToken; +import com.github.scribejava.core.model.OAuth2AccessToken; import com.github.scribejava.core.model.OAuthRequest; -import com.github.scribejava.core.model.OAuthConfig; import com.github.scribejava.core.model.Response; import com.github.scribejava.core.model.Verb; import com.github.scribejava.core.oauth.OAuth10aService; - -import com.github.scribejava.core.model.OAuth2AccessToken; import com.github.scribejava.core.oauth.OAuth20Service; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + class ProviderNotConfiguredException extends Exception { public ProviderNotConfiguredException(String message) { super(message); @@ -71,7 +53,6 @@ class OAuthManagerModule extends ReactContextBaseJavaModule { public OAuthManagerModule(ReactApplicationContext reactContext) { super(reactContext); mReactContext = reactContext; - _credentialsStore = OAuthManagerStore.getOAuthManagerStore(mReactContext, TAG, Context.MODE_PRIVATE); Log.d(TAG, "New instance"); } @@ -128,7 +109,7 @@ public void authorize( final OAuthManagerModule self = this; final HashMap cfg = this.getConfiguration(providerName); final String authVersion = (String) cfg.get("auth_version"); - Activity activity = mReactContext.getCurrentActivity(); + Activity activity = this.getCurrentActivity(); FragmentManager fragmentManager = activity.getFragmentManager(); String callbackUrl = "http://localhost/" + providerName; From 0995d8d7186553e37f716c2b29423052fc261685 Mon Sep 17 00:00:00 2001 From: divyanshunegi Date: Tue, 11 Apr 2017 12:35:23 +0530 Subject: [PATCH 2/4] fragment changes done and merged --- android/android.iml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/android.iml b/android/android.iml index 396a3b2..68202b2 100644 --- a/android/android.iml +++ b/android/android.iml @@ -118,8 +118,8 @@ - + From 719e45a1a2a80370cbafb77351ce8767ab55acdf Mon Sep 17 00:00:00 2001 From: divyanshunegi Date: Tue, 11 Apr 2017 16:33:25 +0530 Subject: [PATCH 3/4] dialog fragment made full screen, added progress bar --- android/android.iml | 2 +- .../oauth/OAuthManagerDialogFragment.java | 72 +++++++++++++------ .../oauth/OAuthManagerFragmentController.java | 37 ++++------ .../src/main/res/layout/webview_layout.xml | 12 ++++ 4 files changed, 78 insertions(+), 45 deletions(-) create mode 100644 android/src/main/res/layout/webview_layout.xml diff --git a/android/android.iml b/android/android.iml index 396a3b2..0cba38a 100644 --- a/android/android.iml +++ b/android/android.iml @@ -18,7 +18,7 @@