Skip to content

Fix autocomplete app list integration: missing deps, Android 11+ visibility, safety & UX issues#493

Draft
Copilot wants to merge 2 commits intoDonnieBLT/integrate-app-listfrom
copilot/sub-pr-458
Draft

Fix autocomplete app list integration: missing deps, Android 11+ visibility, safety & UX issues#493
Copilot wants to merge 2 commits intoDonnieBLT/integrate-app-listfrom
copilot/sub-pr-458

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 14, 2026

The original autocomplete implementation had several issues preventing it from compiling or working correctly: missing pubspec.yaml dependencies, no Android 11+ package visibility declaration, unsafe icon access, startup jank from eager app loading, and the URL field being set to an app name instead of a valid store URL.

Dependencies

  • Added device_apps: ^2.2.0 and flutter_typeahead: ^5.2.0 to pubspec.yaml (were imported but undeclared)

Android 11+ package visibility

  • Added <queries> block to AndroidManifest.xml so DeviceApps can enumerate installed packages on API 30+

Correctness & safety

  • onSuggestionSelected now sets a valid store URL instead of the app name:
    _titleController.text = Platform.isIOS
        ? suggestion.packageName  // bundle ID (Apple system apps have no App Store URL)
        : 'https://play.google.com/store/apps/details?id=${suggestion.packageName}';
  • itemBuilder checks suggestion is ApplicationWithIcon before accessing .icon; falls back to a Unicode-safe initial-letter avatar via runes.first
  • Added if (!mounted) return after every await in getInstalledApps()

Performance

  • App list loading deferred from initState to first focus of the URL field; guarded by _appsLoaded to prevent redundant fetches
  • includeSystemApps: false to cut down enumerated app count
  • suggestionsCallback short-circuits for queries < 2 chars and caps results at 20

iOS model

  • Added _iosBundleToName lookup so bundle IDs render as human-friendly names ("com.apple.mobilesafari""Safari", etc.)

🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

…red loading, icon safety, URL semantics, suggestion limits

Co-authored-by: DonnieBLT <128622481+DonnieBLT@users.noreply.github.com>
Copilot AI changed the title [WIP] [OWASP-BLT/BLT-Flutter#481] Integrate app list with autocomplete functionality Fix autocomplete app list integration: missing deps, Android 11+ visibility, safety & UX issues Mar 14, 2026
Copilot AI requested a review from DonnieBLT March 14, 2026 00:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

2 participants