diff --git a/app/src/main/java/com/android/sebiya/net/sample/SocialApiSelectDialog.java b/app/src/main/java/com/android/sebiya/net/sample/SocialApiSelectDialog.java index 9a29e2c..db57098 100644 --- a/app/src/main/java/com/android/sebiya/net/sample/SocialApiSelectDialog.java +++ b/app/src/main/java/com/android/sebiya/net/sample/SocialApiSelectDialog.java @@ -55,6 +55,7 @@ public void onItemClick(final View view, final int i) { InstagramLogin.with(getFragmentManager()) .withStartUrl("https://www.instagram.com/accounts/login/") .withFullScreenMode(true) + .withFullScreenStyle(R.style.AppTheme_FullScreenDialog) .withClientInfo(InstagramClientInfo.CLIENT_ID, InstagramClientInfo.REDIRECT_URI) // .withMinWidth(getActivity().getWindowManager().getDefaultDisplay().getWidth()) diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 545b9c6..e619468 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -16,5 +16,10 @@ diff --git a/library/src/main/java/com/android/sebiya/net/social/AuthDialogFragment.java b/library/src/main/java/com/android/sebiya/net/social/AuthDialogFragment.java index b90c8e3..dcc9f5e 100644 --- a/library/src/main/java/com/android/sebiya/net/social/AuthDialogFragment.java +++ b/library/src/main/java/com/android/sebiya/net/social/AuthDialogFragment.java @@ -73,10 +73,10 @@ public void onReceiveValue(final Boolean value) { } }); instance.flush(); - webView.getSettings().setUseWideViewPort(true); webView.getSettings().setTextZoom(100); webView.getSettings().setJavaScriptEnabled(true); webView.setBackgroundColor(-1); + webView.setWebViewClient(new WebViewClient() { public void onPageFinished(WebView webView, String str) { super.onPageFinished(webView, str); @@ -90,6 +90,7 @@ public boolean shouldOverrideUrlLoading(WebView webView, String url) { return super.shouldOverrideUrlLoading(webView, url); } }); + webView.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(final View v, final int keyCode, final KeyEvent event) { diff --git a/library/src/main/java/com/android/sebiya/net/social/instagram/InstagramAuthDialogFragment.java b/library/src/main/java/com/android/sebiya/net/social/instagram/InstagramAuthDialogFragment.java index f39c35f..85e7aef 100644 --- a/library/src/main/java/com/android/sebiya/net/social/instagram/InstagramAuthDialogFragment.java +++ b/library/src/main/java/com/android/sebiya/net/social/instagram/InstagramAuthDialogFragment.java @@ -3,6 +3,8 @@ import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; +import android.support.annotation.StyleRes; +import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentManager; import android.text.TextUtils; import android.util.Log; @@ -27,6 +29,8 @@ public class InstagramAuthDialogFragment extends AuthDialogFragment { private static final String EXTRA_FULL_SCREEN_MODE = "full_screen_mode"; + private static final String EXTRA_FULL_SCREEN_STYLE_RES = "full_screen_style_res"; + private String mClientId; private String mRedirectUrl; @@ -47,6 +51,7 @@ public static InstagramAuthDialogFragment show(FragmentManager fragmentManager, args.putInt(ARGS_HEIGHT, builder.minHeight); args.putString(EXTRA_START_URL, builder.startUrl); args.putBoolean(EXTRA_FULL_SCREEN_MODE, builder.fullScreenMode); + args.putInt(EXTRA_FULL_SCREEN_STYLE_RES, builder.fullScreenStyle); newDialog.setArguments(args); newDialog.show(fragmentManager, "auth"); return newDialog; @@ -79,6 +84,12 @@ public void onCreate(@Nullable final Bundle savedInstanceState) { mRedirectUrl = getArguments().getString(EXTRA_REDIRECT_URL); mStartUrl = getArguments().getString(EXTRA_START_URL); mFullScreenMode = getArguments().getBoolean(EXTRA_FULL_SCREEN_MODE); + if (mFullScreenMode) { + @StyleRes int fullScreenStyle = getArguments().getInt(EXTRA_FULL_SCREEN_STYLE_RES); + if (fullScreenStyle != -1) { + setStyle(DialogFragment.STYLE_NORMAL, fullScreenStyle); + } + } } @Override @@ -116,6 +127,11 @@ protected boolean shouldOverrideUrlLoading(final WebView webView, final String u if (url == null) { return false; } + if (url.startsWith("https://www.facebook.com")) { + String newUrl = url.replace("www.facebook.com", "m.facebook.com"); + webView.loadUrl(newUrl); + return true; + } Uri uri = Uri.parse(url); if (uri.getPathSegments().isEmpty()) { Log.i(LOG_TAG, "shouldOverrideUrlLoading. instagram home page."); diff --git a/library/src/main/java/com/android/sebiya/net/social/instagram/InstagramLogin.java b/library/src/main/java/com/android/sebiya/net/social/instagram/InstagramLogin.java index 79cad5d..a721831 100644 --- a/library/src/main/java/com/android/sebiya/net/social/instagram/InstagramLogin.java +++ b/library/src/main/java/com/android/sebiya/net/social/instagram/InstagramLogin.java @@ -1,5 +1,6 @@ package com.android.sebiya.net.social.instagram; +import android.support.annotation.StyleRes; import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentManager; import com.android.sebiya.net.social.AuthCallbacks; @@ -26,6 +27,8 @@ public static class Builder { boolean fullScreenMode; + @StyleRes int fullScreenStyle = -1; + private AuthCallbacks authCallback; private Builder(FragmentManager fragmentManager) { @@ -58,6 +61,11 @@ public Builder withFullScreenMode(boolean fullScreenMode) { return this; } + public Builder withFullScreenStyle(@StyleRes int styleRes) { + fullScreenStyle = styleRes; + return this; + } + public DialogFragment show() { return InstagramAuthDialogFragment.show(fragmentManager, this); }