Skip to content

Commit

Permalink
Merge pull request #705 from xscreach/feature/popup-cleaup
Browse files Browse the repository at this point in the history
popup cleanup
  • Loading branch information
modos189 committed Feb 23, 2024
2 parents 5ea68dc + bba5352 commit b0e4981
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,31 +61,6 @@ private boolean reloadWithUserAgent(final WebView view, final String url) {
return true;
}

private String categorizeUriHostAndPath(String uriHost, String uriPath) {
if (uriHost.endsWith("facebook.com")
&& (uriPath.contains("oauth") || uriPath.startsWith("/login") || uriPath.equals("/checkpoint/")
|| uriPath.equals("/cookie/consent_prompt/"))) {
return "Facebook";
}
if (uriHost.startsWith("accounts.google.") ||
uriHost.startsWith("appengine.google.") ||
uriHost.startsWith("accounts.youtube.") ||
uriHost.startsWith("myaccount.google.") ||
uriHost.startsWith("gds.google.")) {
return "Google";
}
if (uriHost.equals("appleid.apple.com")) {
return "AppleID";
}
if (uriHost.startsWith("signin.nianticlabs.")) {
return "Niantic";
}
if (mIitc.isInternalHostname(uriHost)) {
return "InternalHost";
}
return "Unknown";
}

@Override
public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
final Uri uri = Uri.parse(url);
Expand Down Expand Up @@ -115,9 +90,8 @@ public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
return shouldOverrideUrlLoading(view, uriQuery);
}

String authCategory = categorizeUriHostAndPath(uriHost, uriPath);
if (!authCategory.equals("Unknown")) {
Log.d("popup: " + authCategory + " login");
if (mIitc.isInternalHostname(uriHost) || LoginUrlChecker.isLoginUrl(uri)) {
Log.d("Opening popup: " + uri);
openDialogPopup();
return false;
}
Expand Down Expand Up @@ -155,38 +129,38 @@ private void openDialogPopup() {
if (mDialog.isShowing()) return;

// Set the dialog content view to match parent's height and width
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
);
mDialog.getWindow().setContentView(this, params);

// Set horizontal and vertical margins
// ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(
// ViewGroup.LayoutParams.MATCH_PARENT,
// ViewGroup.LayoutParams.MATCH_PARENT
// );
// mDialog.getWindow().setContentView(this, params);
//
// // Set horizontal and vertical margins
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
layoutParams.copyFrom(mDialog.getWindow().getAttributes());

// Set width and height to match_parent
//
// // Set width and height to match_parent
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;

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

// 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;
//
// // 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 = -0.3f;
// layoutParams.verticalMargin = 0.3f;
//
mDialog.getWindow().setAttributes(layoutParams);
// mDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

mDialog.show();

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

// 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 b0e4981

Please sign in to comment.