How rpy2006/phoneserver works
PhoneServer is an Android app that serves shared phone storage and hosted content over a local HTTP server, while also acting as a client for other PhoneServer devices. The main workflow is to start the local server, let a browser or peer request content or perform file operations, and have the server handle requests against device storage and report live statistics. The app also supports remote browsing, server profiles, QR onboarding, website and mock-API authoring, and on-device model chat. Some subsystem links reflect README documentation because their implementations were not sampled.
Main entry points: SimpleHttpServer.java HTTP server · ServerProfileStore.java Server profiles · DashboardFragment.java Live dashboard · RemoteApiClient.java Remote API client
Components 22
Local hosting
- Home controls
app/src/main/java/com/yadaventerprise/phoneserver/HomeFragment.java - Foreground service
app/src/main/java/com/yadaventerprise/phoneserver/ServerService.java - HTTP server
app/src/main/java/com/yadaventerprise/phoneserver/SimpleHttpServer.java - Shared content
app/src/main/java/com/yadaventerprise/phoneserver/ContentStore.java - Local file manager
app/src/main/java/com/yadaventerprise/phoneserver/FilesActivity.java - File viewers
app/src/main/java/com/yadaventerprise/phoneserver/ImageViewerActivity.java
Remote access
- Server profiles
app/src/main/java/com/yadaventerprise/phoneserver/ServerProfileStore.java - QR onboarding
app/src/main/java/com/yadaventerprise/phoneserver/QrFragment.java - Remote browser
app/src/main/java/com/yadaventerprise/phoneserver/RemoteBrowseActivity.java - Remote API client
app/src/main/java/com/yadaventerprise/phoneserver/RemoteApiClient.java
Monitoring
- Live dashboard
app/src/main/java/com/yadaventerprise/phoneserver/DashboardFragment.java - Server metrics
app/src/main/java/com/yadaventerprise/phoneserver/ServerStats.java - Device telemetry
app/src/main/java/com/yadaventerprise/phoneserver/DeviceStats.java
Content authoring
- Website editor
app/src/main/java/com/yadaventerprise/phoneserver/WebsiteFilesActivity.java - API editor
app/src/main/java/com/yadaventerprise/phoneserver/ApiEditorActivity.java - API endpoint config
app/src/main/java/com/yadaventerprise/phoneserver/ApiEndpointStore.java
On-device AI
- AI chat
app/src/main/java/com/yadaventerprise/phoneserver/ChatFragment.java - Model storage
app/src/main/java/com/yadaventerprise/phoneserver/ModelStore.java - LLM engine
app/src/main/java/com/yadaventerprise/phoneserver/LlmEngine.java
Other components
- Phone owner
- Browser / peer
- Remote PhoneServer
Connections 23
- Phone owner → Home controls: starts service
- Home controls → Foreground service: starts or stops
- Foreground service → HTTP server: starts server
- Browser / peer → HTTP server: sends HTTP requests
- HTTP server → Shared content: reads and changes files
- HTTP server → Server metrics: records activity
- Local file manager → Shared content: manages files
- Local file manager → File viewers: opens supported files
- Phone owner → Server profiles: saves profiles
- QR onboarding → Server profiles: creates scanned profile
- Remote browser → Server profiles: loads profile
- Remote browser → Remote API client: requests remote files
- Remote API client → Remote PhoneServer: sends API requests
- Live dashboard → Server metrics: reads local metrics
- Live dashboard → Server profiles: loads remote profiles
- Live dashboard → Remote API client: polls remote metrics
- Server metrics → Device telemetry: collects device metrics
- Website editor → Shared content: manages hosted files
- API editor → API endpoint config: saves endpoint mappings
- HTTP server → API endpoint config: serves configured endpoints
- AI chat → Model storage: imports model
- AI chat → LLM engine: generates responses
- LLM engine → Model storage: loads model