3.3 KiB
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>inAndroidManifest.xmlfor ACTION_SEND and ACTION_SEND_MULTIPLE - Handle incoming shared files in
MainActivityor 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
.zipformat - 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