[PB-6482]: reliably upload iCloud-offloaded camera-roll originals - #529
Open
terrerox wants to merge 6 commits into
Open
[PB-6482]: reliably upload iCloud-offloaded camera-roll originals#529terrerox wants to merge 6 commits into
terrerox wants to merge 6 commits into
Conversation
terrerox
commented
Jul 11, 2026
Contributor
- expo-image-picker (SDK 54) materialized all selected originals at pick time, all-or-nothing; an iCloud-offloaded original that couldn't download rejected the whole selection with PHPhotosErrorDomain 3164, which was swallowed silently (no upload, no error).
- Replace the iOS camera-roll selection with a native PHPickerViewController (PhotoPicker.pickAssets) that returns asset identifiers only, then download each original via the existing native PHAssetExport (isNetworkAccessAllowed) with retry and per-asset failure isolation; surface a user-facing error instead of swallowing.
- Wire PHAssetExportModule.swift/.m (which also host the new PhotoPicker module) into the Internxt app target in the Xcode project — they were previously not referenced, so the native modules never compiled in.
- Add cameraRollAssets service (pickPhotoAssets/exportPhAsset/withRetry) and i18n strings.
terrerox
force-pushed
the
feature/drive-list-mode-thumbnails
branch
from
July 16, 2026 02:46
00cec16 to
652e4e0
Compare
- Wire AuthConfig.clientName/clientVersion through
BuildConfig.INTERNXT_CLIENT_NAME and BuildConfig.INTERNXT_CLIENT_VERSION,
populated by app/build.gradle from package.json. package.json is now the
single source of truth for the internxt-client/internxt-version headers.
- Extract JSON helpers (orEmpty, map, optStringOrNull, optLongFlexible)
from InternxtApiClient into JsonExtensions.kt; cover each branch in a
new JsonExtensionsTest.
- Rename InternxtApiClient.execute -> executeApiRequest.
- Expand InternxtApiClientTest: listFolderFolders, createFolder, null
optional fields, size given as a string, and 5xx -> ApiError. Add an
enqueueJson helper to cut response-stub boilerplate.
- Add @TamaraFinogina as CODEOWNER for the new documents/crypto/ directory.
…tVersion 54) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add a per-folder snapshot/diff change-feed in the File Provider extension so working-set enumeration surfaces upload, create-folder, move, rename, trash and restore as changes. SyncAnchorStore persists the per-domain anchor; FileProviderModule exposes a native bridge so the host app can signal the enumerator on RN mutations.
…bnail paths Uploads of files whose names contain spaces or non-ASCII characters failed with ENOENT because percent-encoded cache URIs were passed unmodified to RNFS.copyFile and to the native thumbnail generator. Decode the source URI before copy (copyFileFromEncodedUri) and the native-returned thumbnail URI (fromFileUri); drop the stale manual %20 encoding. Device-verified on Android.
- expo-image-picker (SDK 54) materialized all selected originals at pick time, all-or-nothing; an iCloud-offloaded original that couldn't download rejected the whole selection with PHPhotosErrorDomain 3164, which was swallowed silently (no upload, no error). - Replace the iOS camera-roll selection with a native PHPickerViewController (PhotoPicker.pickAssets) that returns asset identifiers only, then download each original via the existing native PHAssetExport (isNetworkAccessAllowed) with retry and per-asset failure isolation; surface a user-facing error instead of swallowing. - Wire PHAssetExportModule.swift/.m (which also host the new PhotoPicker module) into the Internxt app target in the Xcode project — they were previously not referenced, so the native modules never compiled in. - Add cameraRollAssets service (pickPhotoAssets/exportPhAsset/withRetry) and i18n strings. Android branch unchanged. - Verified end-to-end on a physical device: previously-offloaded iCloud videos that failed with 3164 now download and upload successfully.
terrerox
force-pushed
the
fix/camera-roll-icloud-offloaded-upload
branch
from
July 16, 2026 03:02
224e423 to
8ffa224
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

