@@ -54,7 +54,7 @@ npm install react-native-nitro-cloud-uploader react-native-nitro-modules
5454 <img src="./docs/videos/iOS.gif" width="300" alt="Demo GIF" />
5555 </td>
5656 <td align="center">
57- <img src="./docs/videos/Android .gif" width="300" alt="Demo GIF" />
57+ <img src="./docs/videos/android .gif" width="300" alt="Demo GIF" />
5858 </td>
5959 </tr >
6060</table >
@@ -81,21 +81,21 @@ const SINGLE_UPLOAD_URL = `${BASE_URL}/single-upload`;
8181
8282## 🧠 Overview
8383
84- | Feature | iOS | Android | Implementation |
85- | --------------------------------- | --- | ------- | -------------- |
86- | Large file uploads (audio/video) | ✅ | ✅ | Native |
87- | Multipart / presigned URL uploads | ✅ | ✅ | S3-compatible |
88- | Cloudflare R2 | ✅ | ✅ | Tested |
89- | Backblaze B2 | ✅ | ✅ | Tested |
90- | S3-compatible storage | ✅ | ✅ | Standard API |
91- | Background uploads | ✅ | ✅ | URLSession.background / ForegroundService |
92- | Pause/Resume | ✅ | ✅ | Task suspension |
93- | Cancel | ✅ | ✅ | Job cancellation |
94- | Network monitoring | ✅ | ✅ | Auto-pause/resume on connection loss |
95- | Progress tracking | ✅ | ✅ | Real-time events |
96- | Progress notifications | ✅ | ✅ | Native notifications |
97- | Parallel chunk uploads | ✅ | ✅ | Configurable (default: 3) |
98- | ETag collection | ✅ | ✅ | Automatic |
84+ | Feature | Implementation |
85+ | --------------------------------- | --------------------------- -------------- |
86+ | Large file uploads (audio/video) | Native |
87+ | Multipart / presigned URL uploads | S3-compatible |
88+ | Cloudflare R2 | Tested |
89+ | Backblaze B2 | Tested |
90+ | S3-compatible storage | Standard API |
91+ | Background uploads | URLSession.background / ForegroundService |
92+ | Pause/Resume | Task suspension |
93+ | Cancel | Job cancellation |
94+ | Network monitoring | Auto-pause/resume on connection loss |
95+ | Progress tracking | Real-time events |
96+ | Progress notifications | Native notifications |
97+ | Parallel chunk uploads | Configurable (default: 3) |
98+ | ETag collection | Automatic |
9999
100100---
101101
@@ -121,18 +121,19 @@ await CloudUploader.startUpload(newUploadId, filePath, uploadUrls, 3, true);
121121
122122## 🧩 Supported Platforms
123123
124- | Platform | Status |
125- | ----------------- | ------------------ |
126- | ** iOS** | ✅ Fully Supported |
127- | ** Android** | ✅ Fully Supported |
128- | ** iOS Simulator** | ✅ Works |
129- | ** Android Emulator** | ✅ Works |
124+ | Platform | Status |
125+ | -------------------- | ------------------ |
126+ | ** iOS** | ✅ Fully Supported |
127+ | ** Android** | ✅ Fully Supported |
128+ | ** iOS Simulator** | ✅ Works |
129+ | ** Android Emulator** | ✅ Works |
130130
131131### Android Requirements
132132
133133** Minimum SDK** : API 24 (Android 7.0)
134134
135135** Required Permissions** (automatically added):
136+
136137- ` INTERNET ` - Network uploads
137138- ` ACCESS_NETWORK_STATE ` - Network monitoring
138139- ` POST_NOTIFICATIONS ` - Progress notifications (Android 13+)
@@ -152,11 +153,13 @@ if (Platform.OS === 'android' && Platform.Version >= 33) {
152153 const granted = await PermissionsAndroid .request (
153154 PermissionsAndroid .PERMISSIONS .POST_NOTIFICATIONS
154155 );
155-
156+
156157 if (granted === PermissionsAndroid .RESULTS .GRANTED ) {
157158 console .log (' Notification permission granted' );
158159 } else {
159- console .log (' Notification permission denied - uploads will work without notifications' );
160+ console .log (
161+ ' Notification permission denied - uploads will work without notifications'
162+ );
160163 }
161164}
162165```
@@ -165,13 +168,6 @@ if (Platform.OS === 'android' && Platform.Version >= 33) {
165168
166169---
167170
168- ## 📚 Documentation
169-
170- - [ Android Implementation Summary] ( ANDROID_IMPLEMENTATION_SUMMARY.md ) - Detailed Android implementation details and architecture
171- - [ Android Testing Guide] ( ANDROID_TESTING.md ) - Comprehensive testing scenarios for Android
172-
173- ---
174-
175171## 🤝 Contributing
176172
177173Contributions are welcome!
0 commit comments