-
Notifications
You must be signed in to change notification settings - Fork 4k
[No QA] Docs updates for E/A#96458 in-app camera for chat attachment photos #101478
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
a06b02c
017e395
051951a
264d1e9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,7 +2,7 @@ | |
|
|
||
| title: Chat Features and Moderation Tools | ||
| description: Learn how to send, format, edit, delete, report, and manage messages and chat membership in New Expensify. | ||
| keywords: [New Expensify, chat, edit messages, report chat, add members, leave room, thread] | ||
| keywords: [New Expensify, chat, edit messages, report chat, add members, leave room, thread, add attachment, take photo] | ||
| --- | ||
|
|
||
|
|
||
|
|
@@ -18,15 +18,32 @@ You can send messages, attach files, and add emojis from the message bar at the | |
|
|
||
| **On Web:** | ||
| 1. Open any chat from your inbox. | ||
| 2. Click the field labeled **Write something**, then type your message. | ||
| 2. Click the field labeled **Write something...**, then type your message. | ||
| 3. To add an attachment, click the **plus icon** and select **Add attachment**. | ||
| 4. To add an emoji, click the **emoji icon**. | ||
| 5. Press **Enter** or click the **Send** icon. | ||
|
|
||
| **On Mobile:** | ||
| **On the Expensify mobile app (iOS and Android):** | ||
| 1. Tap any chat from your inbox. | ||
| 2. Use the message bar to type a message, add an attachment, or insert an emoji. | ||
| 3. Tap the **Send** icon. | ||
| 2. Tap the field labeled **Write something...**, then type your message. | ||
| 3. To add an attachment, tap the **plus icon**, select **Add attachment**, then choose **Take photo**, **Choose from gallery**, or **Choose file**. | ||
| 4. To add an emoji, tap the **emoji icon**. | ||
| 5. Tap the **Send** icon. | ||
|
|
||
| ✏️ **Note:** The **Take photo**, **Choose from gallery**, and **Choose file** options are available on the iOS and Android apps only. On mobile web, **Add attachment** opens your device’s file picker instead. | ||
|
|
||
| ## How to take a photo to attach to a chat message (iOS and Android only) | ||
|
|
||
| 1. Open any chat from your inbox. | ||
| 2. Tap the **plus icon**, then select **Add attachment**. | ||
| 3. Tap **Take photo**. | ||
| 4. The first time you do this, your device asks for camera access — allow it. If you declined earlier, Expensify shows a **Take photo** screen with a **Continue** button instead; tap **Continue** to ask for access again. | ||
| 5. Tap the **flash** icon on the left to turn the flash on or off, or the **flip camera** icon on the right to switch between the front and back cameras. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Step formatting: This numbered step bundles two distinct optional actions (toggling flash and using flip camera) into one step. Per HELP_AUTHORING_GUIDELINES.md Section 5, steps should be sequential and action-oriented (one action per step). Consider splitting into two steps, or moving these optional controls out of the numbered sequence since they are not required to complete the capture. |
||
| 6. Tap the **shutter** button in the center to capture the photo. The photo is sent to the chat immediately — there is no preview screen and no separate send step. If you already typed a message, it is sent along with the photo. | ||
|
|
||
| To leave the camera without capturing a photo, tap the **X** in the top-right corner. | ||
|
|
||
| The **flash** and **flip camera** icons are hidden when your device has no flash or only one camera. | ||
|
|
||
| ## Formatting Messages | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This instruction is not valid for users accessing Expensify from a mobile browser: the web/mobile-web
AttachmentPickeruses a hidden file input directly and never renders the Take photo, Choose from gallery, and Choose file menu. Since the article elsewhere distinguishes mobile web from the native mobile app, label this flow as native-app-only (and clarify that mobile web opens the device file picker) so mobile-web users are not directed to nonexistent options.Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@MelvinBot Mention that these steps are applicable for native Android and iOS apps
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done — the steps now say they apply to the iOS and Android apps, and mobile web is called out separately.
Verified the distinction in code: web and mobile web use a hidden
<input type="file">and never render the three-option menu (AttachmentPicker/index.tsx:55-60), while Take photo / Choose from gallery / Choose file only exist in index.native.tsx.I also retitled the camera section from (Mobile only) to (iOS and Android only), since "Mobile" was the ambiguous part — it reads as including mobile web. The
✏️ **Note:**pattern and the "available on iOS and Android only" phrasing match the existing convention in Distance-Expenses.md:30.Pushed as
051951a— see Chat-Features-and-Moderation-Tools.md:26-35.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 Android test steps verification results: ✅ pass
All 6 documented steps for attaching a photo via chat behaved as the article describes on Android NewDot: plus icon → Add attachment → three correctly-ordered options → in-app camera → shutter sends immediately with no preview screen, and the composer placeholder is exactly Write something....
Tapping the plus icon in the composer shows an Add attachment option
The plus (Open actions menu) button opened a bottom sheet containing a single row labeled "Add attachment".Add attachment shows exactly three options, in order: Take photo, Choose from gallery, Choose file
The accessibility tree returned exactly 3 buttons in this order: 'Take photo', 'Choose from gallery', 'Choose file'.Take photo opens a camera inside Expensify, not the system camera app
A standard Android runtime permission dialog appeared first ("Allow New Expensify Dev to take pictures and record video?") with 'While using the app' / 'Only this time' / "Don't allow" — no Continue button. After granting, an in-app camera UI rendered inside the Expensify view hierarchy (bundleId com.expensify.chat.dev), not a system camera activity.Camera screen controls and their positions
Exactly 3 controls: Close (X) top-right (x=996 of a 1080-wide screen), flash bottom-left, shutter bottom-center. No flip-camera control anywhere in the tree — absent, because the emulator has no front/back pair.Tapping the shutter sends the photo immediately — no preview screen, no separate send tap
The camera screen closed and the chat showed a new message from the current user containing the photo attachment. No intermediate preview screen, no separate send action.Composer placeholder is exactly Write something...
Reading the composer's text node returned the literal value 'Write something...' with three ASCII periods.The run also caught one thing I had gotten wrong in step 4, now fixed in
264d1e9. The Continue button is not the first thing you see — on first use the OS permission dialog is auto-requested, becauserefreshCameraPermissionStatus(true)callsrequestCameraPermissionas soon as the status readsDENIED(AttachmentCamera.tsx:115-134). The Expensify Continue screen renders only while permission is not granted (AttachmentCamera.tsx:232-252), so it is the retry path after a refusal, not the initial prompt:The missing flip-camera icon is expected and already documented —
canFlipCamerarequires both a front and a back device (AttachmentCamera.tsx:90), and the icon is hidden when that is false, which the article's closing line already covers.