Files

3.3 KiB

📱 Task List for SimpleLogUpload (Android App)

🧭 Project Goals

  • Follow MVC architectural pattern
  • Allow users to upload files manually or via Android share intent
  • Automatically zip uncompressed files before upload
  • Show and manage a local history of uploaded files
  • Display the upload code from server after successful upload
  • Support configuration for:
    • Max download count
    • Expiry time (max 24 hours)

🛠️ Core Features to Implement

🔗 Share Integration

  • Add <intent-filter> in AndroidManifest.xml for ACTION_SEND and ACTION_SEND_MULTIPLE
  • Handle incoming shared files in MainActivity or a new controller
  • Automatically start the upload process from shared intent

📦 Zip Before Upload

  • Detect if selected/shared file is already a .zip
  • If not zipped, compress it to .zip format
  • Use the zipped version for upload

📜 Upload History

  • Create a local database or use SharedPreferences to log:
    • File name
    • Upload time
    • Server-returned code
    • Max downloads & expiry
  • Add new UI to list previously uploaded files
  • Allow copy of upload code and option to delete history entry

⬆️ Upload Enhancements

  • Replace TinyURL logic with server-provided 6-digit alphanumeric code
  • Display this code to the user after upload
  • Validate file size before upload (max 2GB, increased from 16MB)
  • Add retry logic and better error messages

Existing Features (Audit)

  • File selection and upload via UI
  • Background upload using JobService
  • Upload progress shown to user
  • Uses SharedPreferences for config
  • HTTP cleartext traffic support for server communication
  • Support for large file uploads (up to 2GB)

🧪 Testing Scenarios

  • Manual upload with various file types
  • Share intent upload flow
  • Zip logic works on large files
  • Network disruptions (offline/retry handling)
  • UI responsiveness on phones and tablets

🧼 Code Quality

  • Ensure MVC separation in all components
  • Add unit tests for:
    • Zip utility
    • Upload manager
    • History storage
    • Share intent handler
  • Improve logs for debugging failures
  • Ensure compatibility with Android 14+ (API 34)

🚀 Future Ideas

  • Dark mode UI
  • Multi-file upload
  • Upload status notification with retry option
  • Settings UI to customize upload URL
  • Delete from client deletes from server
  • Improve Icons and overall UI to be less ugly
  • Add iOS support. (Only if someone asks...)
  • Let user define max downloads and save the setting in a shared preference
  • Multi-Dumpstate upload
  • Dumpstate cleanup after successful upload
  • Provide steps of how to collect a dumpstate and download the server

🔄 Chunked Upload Implementation

  • Implement basic chunked upload system for large files (>100MB)
  • Add network type detection and adaptive settings for WiFi vs. Mobile
  • Implement resume capability for interrupted uploads
  • Add parallel chunk uploading for WiFi connections
  • Create network state monitoring to handle connection changes
  • Implement progressive backoff and retry strategy
  • Add enhanced progress tracking for chunks
  • Test on both WiFi and 5G with various file sizes