How akborana3/axbrowser works
AxBrowser is an Android browser whose main workflow is navigating pages in a tabbed WebView, with privacy controls and media detection feeding into downloads and playback. Around that flow it provides browsing records, file management, an AI-assisted page agent, and pentest utilities. The graph includes data and integration layers where paths or excerpts support them; several feature-to-app connections are omitted because their wiring was not sampled.
Main entry points: BrowserScreen.kt Browser UI · DownloadViewModel.kt Download control · AxWebViewClient.kt WebView clients · AgentEngine.kt Page agent
Components 28
App and browsing
- Android app
app/src/main/kotlin/com/akay/axbrowser/MainActivity.kt - Browser UI
feature/feature-browser/src/main/kotlin/com/akay/feature/browser/ui/BrowserScreen.kt - Browser state
feature/feature-browser/src/main/kotlin/com/akay/feature/browser/viewmodel/BrowserViewModel.kt - WebView clients
feature/feature-browser/src/main/kotlin/com/akay/feature/browser/webview/AxWebViewClient.kt - Tab switching
feature/feature-browser/src/main/kotlin/com/akay/feature/browser/ui/TabSwitcherScreen.kt - Bookmarks
feature/feature-bookmarks/src/main/kotlin/com/akay/feature/bookmarks/ui/BookmarkScreen.kt - History
feature/feature-history/src/main/kotlin/com/akay/feature/history/ui/HistoryScreen.kt
Media and files
- Download manager
feature/feature-downloads/src/main/kotlin/com/akay/feature/downloads/ui/DownloadManagerScreen.kt - Download control
feature/feature-downloads/src/main/kotlin/com/akay/feature/downloads/viewmodel/DownloadViewModel.kt - Video downloads
feature/feature-downloads/src/main/kotlin/com/akay/feature/downloads/engine/YtDlpEngine.kt - Direct downloads
feature/feature-downloads/src/main/kotlin/com/akay/feature/downloads/engine/DirectDownloadEngine.kt - Video player
feature/feature-videoplayer/src/main/kotlin/com/akay/feature/videoplayer/ui/VideoPlayerScreen.kt - File manager
feature/feature-filemanager/src/main/kotlin/com/akay/feature/filemanager/ui/FileManagerScreen.kt
Domain and storage
- Domain contracts
core/core-domain/src/main/kotlin/com/akay/core/domain/repository/DownloadRepository.kt - Data repositories
core/core-data/src/main/kotlin/com/akay/core/data/repository/DownloadRepositoryImpl.kt - Room database
core/core-data/src/main/kotlin/com/akay/core/data/db/AxDatabase.kt
Privacy and settings
- Ad blocking
feature/feature-browser/src/main/kotlin/com/akay/feature/browser/adblock/AdBlockEngine.kt - Proxy manager
core/core-data/src/main/kotlin/com/akay/core/data/proxy/ProxyManager.kt - Browser settings
feature/feature-settings/src/main/kotlin/com/akay/feature/settings/ui/SettingsScreen.kt
Agent and pentest
- Page agent
feature/feature-browser/src/main/kotlin/com/akay/feature/browser/agent/AgentEngine.kt - Scrape and export
feature/feature-browser/src/main/kotlin/com/akay/feature/browser/agent/ScrapePipeline.kt - AI provider client
core/core-data/src/main/kotlin/com/akay/core/data/ai/OpenRouterClient.kt - Pentest tools
feature/feature-pentest/src/main/kotlin/com/akay/feature/pentest/ui/PentestTabs.kt - Intruder engine
feature/feature-pentest/src/main/kotlin/com/akay/feature/pentest/intruder/IntruderEngine.kt - HTTP sender
feature/feature-pentest/src/main/kotlin/com/akay/feature/pentest/sender/HttpSender.kt
Other components
- Browser user
- Web content
- OpenRouter API
Connections 28
- Browser user → Android app: opens app
- Android app → Browser UI: hosts browsing
- Browser user → Browser UI: navigates
- Browser UI → Browser state: dispatches actions
- Browser UI → WebView clients: renders pages
- WebView clients → Web content: requests content
- Browser UI → Tab switching: switches tabs
- WebView clients → Ad blocking: checks requests
- Browser settings → Proxy manager: configures proxy
- Proxy manager → Web content: routes via proxy
- Browser user → Download manager: manages downloads
- Download manager → Download control: dispatches actions
- Download control → Video downloads: downloads media
- Download control → Direct downloads: downloads files
- Download control → Domain contracts: uses contract
- Domain contracts → Data repositories: implemented by
- Data repositories → Room database: reads and writes
- Browser user → Video player: plays media
- Browser user → File manager: manages files
- Browser user → Bookmarks: saves sites
- Browser user → History: reviews visits
- Browser user → Page agent: asks page task
- Page agent → AI provider client: requests AI response
- AI provider client → OpenRouter API: sends prompts
- Page agent → Scrape and export: formats scrape data
- Browser user → Pentest tools: runs security tools
- Pentest tools → Intruder engine: starts fuzzing
- Intruder engine → HTTP sender: sends requests