Skip to the content.

FastMedia Wear OS - Enhancement Specification

Version: 1.0
Date: 2026-01-27
Status: Planning Phase


Overview

This document outlines planned enhancements for FastMedia Wear OS application. The goal is to add advanced features including settings management, slideshow functionality, and network storage integration while maintaining the lightweight nature suitable for wearable devices.


1. Settings Page

1.1 Core Settings Screen

Objective: Implement a settings page similar to the main application with configuration options and app information.

Requirements

UI Structure

Settings Screen
├── Media Types Section
│   ├── Enable Audio [Toggle]
│   ├── Enable Video [Toggle]
│   └── Enable Images [Toggle]
├── Slideshow Section
│   ├── Enable Slideshow [Toggle]
│   ├── Slideshow Interval [Selector: 3s, 5s, 10s, 15s, 30s]
│   ├── Wait for Media Finish [Toggle]
│   └── Auto-advance on Complete [Toggle]
├── Audio Settings
│   └── Download Album Art [Toggle]
├── About Section
│   ├── App Version
│   ├── Build Number
│   └── Last Updated

Data Persistence

Implementation Files


1.2 Media Type Filtering

Objective: Allow users to disable specific media types from browse screens.

Behavior

Implementation


1.3 Slideshow Functionality

Objective: Implement automatic slideshow for browsing media files.

Features

  1. Manual Slideshow Toggle
    • Button in Browse Screen to start/stop slideshow
    • Indicator when slideshow is active
  2. Auto-Advance Logic
    • Images: Advance after configured interval (3s, 5s, 10s, 15s, 30s)
    • Audio: Advance after track finishes (if “Wait for Finish” enabled)
    • Video: Advance after video finishes (if “Wait for Finish” enabled)
  3. Slideshow Controls
    • Pause/Resume button
    • Skip to next/previous
    • Exit slideshow

Implementation


1.4 Album Art Download

Objective: Download album artwork for audio files from online sources (similar to main app).

Features

Implementation


2. Network Storage Integration

Overview

Enable Wear OS app to connect to network storage (SMB, FTP, SFTP, Google Drive) and browse/play media files directly from remote sources.

⚠️ Important Consideration: Network operations on Wear OS should be carefully managed due to:


2.1 SMB (Samba/Windows Share) Support

Objective: Connect to SMB shares and browse media files.

Requirements

UI Flow

Settings → Network Storage → Add SMB
  ├── Server Address [Text Input]
  ├── Share Name [Text Input]
  ├── Username [Text Input]
  ├── Password [Text Input]
  └── Test Connection [Button]

Implementation


2.2 FTP Support

Objective: Connect to FTP servers and browse media files.

Requirements

Implementation


2.3 SFTP Support

Objective: Connect to SFTP servers (secure FTP over SSH).

Requirements

Implementation


2.4 Google Drive Support

Objective: Connect to Google Drive and browse media files.

Requirements

Challenges on Wear OS

Implementation


3. Architecture Changes

3.1 Data Source Abstraction

Create unified interface for all media sources (local + network).

interface WearMediaDataSource {
    suspend fun listFiles(path: String, mediaType: MediaType): Result<List<WearMediaFile>>
    suspend fun getFileStream(file: WearMediaFile): Result<InputStream>
    fun getSourceType(): MediaSourceType
}

enum class MediaSourceType {
    LOCAL,
    SMB,
    FTP,
    SFTP,
    GOOGLE_DRIVE
}

3.2 Repository Update

Update WearMediaRepository to support multiple data sources.

interface WearMediaRepository {
    suspend fun getMediaFiles(
        mediaType: MediaType,
        source: MediaSourceType = MediaSourceType.LOCAL
    ): Flow<Result<List<WearMediaFile>>>

    suspend fun getNetworkSources(): List<NetworkSource>
    suspend fun addNetworkSource(source: NetworkSource)
    suspend fun removeNetworkSource(sourceId: String)
}

4. Implementation Phases

Phase 1: Settings Foundation (Priority: High)

Estimated Effort: 2-3 days


Phase 2: Slideshow Feature (Priority: Medium)

Estimated Effort: 2-3 days


Phase 3: Album Art Download (Priority: Low)

Estimated Effort: 1-2 days


Phase 4: Network Storage - SMB (Priority: High)

Estimated Effort: 3-4 days


Phase 5: Network Storage - FTP/SFTP (Priority: Medium)

Estimated Effort: 2-3 days


Phase 6: Network Storage - Google Drive (Priority: Low)

Estimated Effort: 3-4 days


5. Technical Considerations

Battery Optimization

Security

User Experience

Dependencies to Add

// Wear module build.gradle.kts additions

// Network
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-gson:2.9.0")
implementation("com.squareup.okhttp3:okhttp:4.12.0")

// SMB
implementation("com.hierynomus:smbj:0.12.1")

// FTP
implementation("commons-net:commons-net:3.10.0")

// SFTP
implementation("com.github.mwiede:jsch:0.2.16")

// Google Drive
implementation("com.google.android.gms:play-services-auth:21.0.0")

// DataStore (already in main app)
implementation("androidx.datastore:datastore-preferences:1.0.0")

// Security
implementation("androidx.security:security-crypto:1.1.0-alpha06")

6. Open Questions

  1. Companion App Integration: Should network credentials be synced from phone app to watch?
  2. Storage Limits: Should we limit cache size on watch due to limited storage?
  3. Background Sync: Should we implement background sync for offline playback?
  4. Multi-Source Browse: How to display files from multiple sources in one view?

7. Success Criteria


Next Steps: Review this specification and prioritize features for implementation.