# abraham-ny/next architecture

> Architecture diagram of the GitHub repository abraham-ny/next, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/abraham-ny/next
- Repository: https://github.com/abraham-ny/next

## Overview

This is an Android web browser centered on entering a URL and viewing pages in a WebView, with navigation controls and a menu for downloads, history, settings, and page source. The downloads screen browses external-storage files and opens selected files through Android; the source screen fetches the current URL independently. The sampled history and settings activities only show their screens, and the excerpts do not establish how history data is populated or displayed, so those links are not inferred.

Main entry points: [`src/main/java/next/browser/activities/MainActivity.java`](https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/MainActivity.java) (Browser controls), [`src/main/java/next/browser/activities/DownloadsActivity.java`](https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/DownloadsActivity.java) (Downloads browser), [`src/main/java/next/browser/activities/SourceActivity.java`](https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/SourceActivity.java) (Page source screen), [`src/main/java/next/browser/activities/HistoryActivity.java`](https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/HistoryActivity.java) (History screen)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_browsing["Web browsing"]
  node_main["Browser controls<br/>[MainActivity.java]"]
  node_webview["WebView<br/>[MainActivity.java]"]
end

subgraph group_screens["Browser screens"]
  node_history["History screen"]
  node_settings["Settings screen"]
  node_source["Page source screen"]
end

subgraph group_storage["Files and history"]
  node_downloads["Downloads browser"]
  node_adapter["File list adapter<br/>[CustomAdapter.java]"]
  node_history_db[("History database")]
end

node_user(("Browser user"))
node_web(("Web content"))
node_download_manager["Android downloads"]
node_external_storage[("External storage")]
node_file_opener["Android file opener"]
node_source_site(("Source URL"))

node_user -->|"uses"| node_main
node_main -->|"loads and navigates"| node_webview
node_webview -->|"requests pages"| node_web
node_webview -->|"reports page finish"| node_main
node_main -->|"opens downloads"| node_downloads
node_main -->|"opens history"| node_history
node_main -->|"opens settings"| node_settings
node_main -->|"opens with URL"| node_source
node_main -->|"enqueues image"| node_download_manager
node_downloads -->|"lists files"| node_external_storage
node_downloads -->|"displays files"| node_adapter
node_downloads -->|"opens selected file"| node_file_opener
node_user -->|"views source"| node_source
node_source -->|"fetches URL"| node_source_site

click node_main "https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/MainActivity.java"
click node_webview "https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/MainActivity.java"
click node_downloads "https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/DownloadsActivity.java"
click node_adapter "https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/CustomAdapter.java"
click node_history "https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/HistoryActivity.java"
click node_settings "https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/SettingsActivity.java"
click node_source "https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/SourceActivity.java"
click node_history_db "https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/db/DatabaseHelper.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_webview,node_user toneBlue
class node_history,node_settings,node_source,node_external_storage toneAmber
class node_downloads,node_adapter,node_history_db toneMint
class node_web,node_download_manager,node_file_opener,node_source_site toneIndigo
```

## Components

### Web browsing

- [Browser controls](https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/MainActivity.java): `src/main/java/next/browser/activities/MainActivity.java`
- [WebView](https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/MainActivity.java): `src/main/java/next/browser/activities/MainActivity.java`

### Browser screens

- [History screen](https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/HistoryActivity.java): `src/main/java/next/browser/activities/HistoryActivity.java`
- [Settings screen](https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/SettingsActivity.java): `src/main/java/next/browser/activities/SettingsActivity.java`
- [Page source screen](https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/SourceActivity.java): `src/main/java/next/browser/activities/SourceActivity.java`

### Files and history

- [Downloads browser](https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/DownloadsActivity.java): `src/main/java/next/browser/activities/DownloadsActivity.java`
- [File list adapter](https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/activities/CustomAdapter.java): `src/main/java/next/browser/activities/CustomAdapter.java`
- [History database](https://github.com/abraham-ny/next/blob/main/src/main/java/next/browser/db/DatabaseHelper.java): `src/main/java/next/browser/db/DatabaseHelper.java`

### Other components

- **Browser user**
- **Web content**
- **Android downloads**
- **External storage**
- **Android file opener**
- **Source URL**

## Connections

- Browser user → Browser controls: uses
- Browser controls → WebView: loads and navigates
- WebView → Web content: requests pages
- WebView → Browser controls: reports page finish
- Browser controls → Downloads browser: opens downloads
- Browser controls → History screen: opens history
- Browser controls → Settings screen: opens settings
- Browser controls → Page source screen: opens with URL
- Browser controls → Android downloads: enqueues image
- Downloads browser → External storage: lists files
- Downloads browser → File list adapter: displays files
- Downloads browser → Android file opener: opens selected file
- Browser user → Page source screen: views source
- Page source screen → Source URL: fetches URL
