Skip to content

Commit

Permalink
extracted LoginUrlChecker
Browse files Browse the repository at this point in the history
  • Loading branch information
xscreach committed Feb 23, 2024
1 parent 3dc5065 commit 4825e05
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -90,12 +90,7 @@ public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
return shouldOverrideUrlLoading(view, uriQuery);
}

if (isFacebookAuth(uriHost, uriPath)
|| isGoogleAuth(uriHost)
|| isAppleAuth(uriHost)
|| isNianticAuth(uriHost)
|| isInternalHostname(uriHost)
) {
if (mIitc.isInternalHostname(uriHost) || LoginUrlChecker.isLoginUrl(uri)) {
Log.d("Opening popup: " + uri);
openDialogPopup();
return false;
Expand Down Expand Up @@ -130,32 +125,6 @@ public void onDismiss(DialogInterface dialog) {
});
}

private boolean isInternalHostname(String uriHost) {
return mIitc.isInternalHostname(uriHost);
}

private boolean isNianticAuth(String uriHost) {
return uriHost.startsWith("signin.nianticlabs.");
}

private boolean isAppleAuth(String uriHost) {
return uriHost.equals("appleid.apple.com");
}

private boolean isGoogleAuth(String uriHost) {
return uriHost.startsWith("accounts.google.") ||
uriHost.startsWith("appengine.google.") ||
uriHost.startsWith("accounts.youtube.") ||
uriHost.startsWith("myaccount.google.") ||
uriHost.startsWith("gds.google.");
}

private boolean isFacebookAuth(String uriHost, String uriPath) {
return uriHost.endsWith("facebook.com")
&& (uriPath.contains("oauth") || uriPath.startsWith("/login") || uriPath.equals("/checkpoint/")
|| uriPath.equals("/cookie/consent_prompt/"));
}

private void openDialogPopup() {
if (mDialog.isShowing()) return;

Expand All @@ -173,13 +142,25 @@ private void openDialogPopup() {
// Set width and height to match_parent
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;
layoutParams.horizontalMargin = 0.1f;
layoutParams.verticalMargin = 0.2f;

mDialog.show();
// Calculate the margin size
DisplayMetrics displayMetrics = new DisplayMetrics();
((WindowManager) mIitc.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getMetrics(displayMetrics);
float widthMargin = displayMetrics.widthPixels * 5f;
float heightMargin = displayMetrics.heightPixels * 0.01f;

// Convert pixels to dp to use as margin
float density = displayMetrics.density;
int marginWidthDp = (int) (widthMargin / density);
int marginHeightDp = (int) (heightMargin / density);

layoutParams.horizontalMargin = marginWidthDp;
layoutParams.verticalMargin = marginHeightDp;

mDialog.getWindow().setAttributes(layoutParams);
mDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

mDialog.show();
}

// constructors -------------------------------------------------
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package org.exarhteam.iitc_mobile;

import android.net.Uri;

public class LoginUrlChecker {

private LoginUrlChecker() {
//hiding default constructor - only static methods
}

public static boolean isLoginUrl(Uri uri) {
String uriHost = uri.getHost();
String uriPath = uri.getPath();

return isFacebookAuth(uriHost, uriPath)
|| isGoogleAuth(uriHost)
|| isAppleAuth(uriHost)
|| isNianticAuth(uriHost);
}

private static boolean isFacebookAuth(String uriHost, String uriPath) {
return uriHost.endsWith("facebook.com")
&& (uriPath.contains("oauth") || uriPath.startsWith("/login") || uriPath.equals("/checkpoint/")
|| uriPath.equals("/cookie/consent_prompt/"));
}

private static boolean isGoogleAuth(String uriHost) {
return uriHost.startsWith("accounts.google.") ||
uriHost.startsWith("appengine.google.") ||
uriHost.startsWith("accounts.youtube.") ||
uriHost.startsWith("myaccount.google.") ||
uriHost.startsWith("gds.google.");
}

private static boolean isAppleAuth(String uriHost) {
return uriHost.equals("appleid.apple.com");
}

private static boolean isNianticAuth(String uriHost) {
return uriHost.startsWith("signin.nianticlabs.");
}
}

0 comments on commit 4825e05

Please sign in to comment.