diff --git a/native/avatars/edit-thread-avatar-provider.react.js b/native/avatars/edit-thread-avatar-provider.react.js
--- a/native/avatars/edit-thread-avatar-provider.react.js
+++ b/native/avatars/edit-thread-avatar-provider.react.js
@@ -7,7 +7,10 @@
   changeThreadSettingsActionTypes,
 } from 'lib/actions/thread-actions.js';
 import { createLoadingStatusSelector } from 'lib/selectors/loading-selectors.js';
-import type { UpdateUserAvatarRequest } from 'lib/types/avatar-types.js';
+import type {
+  UpdateUserAvatarRequest,
+  ImageAvatarDBContent,
+} from 'lib/types/avatar-types.js';
 import type { LoadingStatus } from 'lib/types/loading-types.js';
 import type {
   MediaLibrarySelection,
@@ -19,7 +22,6 @@
   useServerCall,
 } from 'lib/utils/action-utils.js';
 
-import { selectFromGallery, useUploadSelectedMedia } from './avatar-hooks.js';
 import { activeThreadSelector } from '../navigation/nav-selectors.js';
 import { NavContext } from '../navigation/navigation-context.js';
 import { useSelector } from '../redux/redux-utils.js';
@@ -42,10 +44,19 @@
 
 type Props = {
   +displayFailureAlert: () => mixed,
+  +selectFromGallery: () => Promise<?MediaLibrarySelection>,
+  +useUploadSelectedMedia: (
+    setProcessingOrUploadInProgress?: (inProgress: boolean) => mixed,
+  ) => (selection: NativeMediaSelection) => Promise<?ImageAvatarDBContent>,
   +children: React.Node,
 };
 function EditThreadAvatarProvider(props: Props): React.Node {
-  const { displayFailureAlert, children } = props;
+  const {
+    displayFailureAlert,
+    selectFromGallery,
+    useUploadSelectedMedia,
+    children,
+  } = props;
 
   const navContext = React.useContext(NavContext);
   const activeThreadID = React.useMemo(
@@ -139,7 +150,7 @@
       }
       await updateImageThreadAvatar(selection, threadID);
     },
-    [updateImageThreadAvatar],
+    [selectFromGallery, updateImageThreadAvatar],
   );
 
   const setThreadAvatar = React.useCallback(
diff --git a/native/root.react.js b/native/root.react.js
--- a/native/root.react.js
+++ b/native/root.react.js
@@ -23,6 +23,10 @@
 import { actionLogger } from 'lib/utils/action-logger.js';
 
 import { RegistrationContextProvider } from './account/registration/registration-context-provider.react.js';
+import {
+  selectFromGallery,
+  useUploadSelectedMedia,
+} from './avatars/avatar-hooks.js';
 import { EditThreadAvatarProvider } from './avatars/edit-thread-avatar-provider.react.js';
 import NativeEditUserAvatarProvider from './avatars/native-edit-user-avatar-provider.react.js';
 import ChatContextProvider from './chat/chat-context-provider.react.js';
@@ -276,6 +280,8 @@
                             displayFailureAlert={
                               displayAvatarUpdateFailureAlert
                             }
+                            selectFromGallery={selectFromGallery}
+                            useUploadSelectedMedia={useUploadSelectedMedia}
                           >
                             <MarkdownContextProvider>
                               <ChatContextProvider>