Skip to content

feat: check block list#780

Merged
jaymengxy merged 3 commits intodevelopfrom
blocklist
Apr 11, 2025
Merged

feat: check block list#780
jaymengxy merged 3 commits intodevelopfrom
blocklist

Conversation

@jaymengxy
Copy link
Copy Markdown
Contributor

Related Issue

Closes #767

Summary of Changes

Need Regression Testing

  • Yes
  • No

Risk Assessment

  • Low
  • Medium
  • High

Additional Notes

Screenshots (if applicable)

image image

@jaymengxy jaymengxy added this to the Release 2.8.2 milestone Apr 10, 2025
@jaymengxy jaymengxy requested a review from a team April 10, 2025 09:05
@jaymengxy jaymengxy self-assigned this Apr 10, 2025
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 10, 2025

PR Summary

Added a new BlockManager to check websites against a community-maintained blocklist. Implemented warning UI components and dialogs to alert users when accessing potentially dangerous websites. Added timeout for network requests and localized warning messages across multiple languages.

Changes

File Summary
app/src/main/java/com/flowfoundation/wallet/manager/LaunchManager.kt Initialized BlockManager during app launch to prepare blocklist functionality
app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt Implemented BlockManager to fetch and check domains against a community-maintained blocklist with caching and domain pattern matching
app/src/main/java/com/flowfoundation/wallet/page/browser/widgets/LilicoWebView.kt Enhanced WebView to check URLs against blocklist and display warning UI when accessing blocked sites
app/src/main/java/com/flowfoundation/wallet/widgets/SendButton.kt Added warning visual state to SendButton for indicating dangerous operations
app/src/main/java/com/flowfoundation/wallet/widgets/webview/evm/dialog/EVMSignMessageDialog.kt Added warning UI when signing messages from blocked domains
app/src/main/java/com/flowfoundation/wallet/widgets/webview/evm/dialog/EVMSignTypedDataDialog.kt Added warning UI when signing typed data from blocked domains
app/src/main/java/com/flowfoundation/wallet/widgets/webview/evm/dialog/EvmRequestAccountDialog.kt Added warning UI when connecting accounts to blocked domains
app/src/main/java/com/flowfoundation/wallet/widgets/webview/fcl/dialog/FclAuthnDialog.kt Added warning UI when authenticating with blocked domains via FCL
app/src/main/java/com/flowfoundation/wallet/widgets/webview/fcl/dialog/FclSignMessageDialog.kt Added warning UI when signing messages from blocked domains via FCL
app/src/main/java/com/flowfoundation/wallet/widgets/webview/fcl/dialog/authz/FclAuthzView.kt Added warning UI when authorizing transactions from blocked domains
app/src/main/res/drawable/bg_blocked_connect_layout.xml New drawable for blocked connection warning UI background
app/src/main/res/drawable/bg_blocked_layout.xml New drawable for general blocked warning UI background
app/src/main/res/drawable/ic_blocked.xml New vector drawable for blocked warning icon
app/src/main/res/layout/dialog_evm_account.xml Added blocked warning components to EVM account connection dialog
app/src/main/res/layout/dialog_evm_sign_typed_data.xml Added blocked warning components to EVM typed data signing dialog
app/src/main/res/layout/dialog_fcl_authn.xml Added blocked warning components to FCL authentication dialog
app/src/main/res/layout/dialog_fcl_authz.xml Added blocked warning components to FCL authorization dialog
app/src/main/res/layout/dialog_fcl_sign_message.xml Added blocked warning components to FCL message signing dialog
app/src/main/res/layout/layout_blocked_connect.xml New layout for displaying blocked connection warnings
app/src/main/res/layout/layout_blocked_tip.xml New layout for displaying blocked warning tips
app/src/main/res/layout/layout_blocked_view.xml New layout for displaying full blocked view warnings
app/src/main/res/values-*/strings.xml Added translations for blocked website warning messages in multiple languages

autogenerated by presubmit.ai

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 Pull request needs attention.

Review Summary

Commits Considered (1)
Files Processed (30)
  • app/src/main/java/com/flowfoundation/wallet/manager/LaunchManager.kt (2 hunks)
  • app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt (1 hunk)
  • app/src/main/java/com/flowfoundation/wallet/page/browser/widgets/LilicoWebView.kt (5 hunks)
  • app/src/main/java/com/flowfoundation/wallet/widgets/webview/evm/dialog/EVMSignMessageDialog.kt (2 hunks)
  • app/src/main/java/com/flowfoundation/wallet/widgets/webview/evm/dialog/EVMSignTypedDataDialog.kt (3 hunks)
  • app/src/main/java/com/flowfoundation/wallet/widgets/webview/evm/dialog/EvmRequestAccountDialog.kt (2 hunks)
  • app/src/main/java/com/flowfoundation/wallet/widgets/webview/fcl/dialog/FclAuthnDialog.kt (2 hunks)
  • app/src/main/java/com/flowfoundation/wallet/widgets/webview/fcl/dialog/FclSignMessageDialog.kt (2 hunks)
  • app/src/main/java/com/flowfoundation/wallet/widgets/webview/fcl/dialog/authz/FclAuthzView.kt (2 hunks)
  • app/src/main/res/drawable/bg_blocked_connect_layout.xml (1 hunk)
  • app/src/main/res/drawable/bg_blocked_layout.xml (1 hunk)
  • app/src/main/res/drawable/ic_blocked.xml (1 hunk)
  • app/src/main/res/layout/dialog_evm_account.xml (5 hunks)
  • app/src/main/res/layout/dialog_evm_sign_typed_data.xml (1 hunk)
  • app/src/main/res/layout/dialog_fcl_authn.xml (3 hunks)
  • app/src/main/res/layout/dialog_fcl_authz.xml (1 hunk)
  • app/src/main/res/layout/dialog_fcl_sign_message.xml (2 hunks)
  • app/src/main/res/layout/layout_blocked_connect.xml (1 hunk)
  • app/src/main/res/layout/layout_blocked_tip.xml (1 hunk)
  • app/src/main/res/layout/layout_blocked_view.xml (1 hunk)
  • app/src/main/res/values-de-rDE/strings.xml (3 hunks)
  • app/src/main/res/values-en-rUS/strings.xml (7 hunks)
  • app/src/main/res/values-es-rES/strings.xml (4 hunks)
  • app/src/main/res/values-es-rUS/strings.xml (4 hunks)
  • app/src/main/res/values-fr-rFR/strings.xml (4 hunks)
  • app/src/main/res/values-hi-rIN/strings.xml (14 hunks)
  • app/src/main/res/values-it-rIT/strings.xml (4 hunks)
  • app/src/main/res/values-ja-rJP/strings.xml (4 hunks)
  • app/src/main/res/values-ko-rKR/strings.xml (3 hunks)
  • app/src/main/res/values-night/colors.xml (1 hunk)
Actionable Comments (2)
  • app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt [70-71]

    best practice: "Add timeout to network request"

  • app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt [42-44]

    possible issue: "Improve domain matching logic"

Skipped Comments (1)
  • app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt [15-15]

    enhancement: "Make blocklist URL configurable"

Comment thread app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt Outdated
Comment thread app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt Outdated
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 Pull request needs attention.

Review Summary

Commits Considered (1)
  • 894f7b6: fix: add network request time out
Files Processed (1)
  • app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt (1 hunk)
Actionable Comments (1)
  • app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt [38-42]

    bug: "Logic error in domain matching"

Skipped Comments (2)
  • app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt [64-67]

    best practice: "Network request without timeout handling"

  • app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt [81-81]

    best practice: "Using error log for non-error information"

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Review Summary

Commits Considered (1)
  • d9eeedf: fix: add network request time out
Files Processed (1)
  • app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt (1 hunk)
Actionable Comments (0)
Skipped Comments (3)
  • app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt [62-64]

    best practice: "Network timeouts could be configurable constants"

  • app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt [42-42]

    enhancement: "Exception details are not logged"

  • app/src/main/java/com/flowfoundation/wallet/manager/blocklist/BlockManager.kt [38-38]

    performance: "Regular expression could be precompiled"

@jaymengxy
Copy link
Copy Markdown
Contributor Author

96aace1ac003a5f48a0a9d4a32205d2d
020ed5c9eb5c82b0145e6677c0cd6b48

@jaymengxy jaymengxy merged commit c1629f2 into develop Apr 11, 2025
3 checks passed
@jaymengxy jaymengxy deleted the blocklist branch April 11, 2025 06:37
@Peppermint1020
Copy link
Copy Markdown

This feature already added on Android internal test version 253 (i1.8.6).
Screenshot_20250414-091811
Screenshot_20250414-091848
Screenshot_20250414-091924

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Client can fetch and act on the blacklist, blocking connections to harmful dApps.

3 participants