Camera New Vision — User Manual (User Needing Help)
Table of Contents
- Overview
- Getting Started
- Role Selection
- Login & Registration
- Onboarding
- Dashboard
- Requesting a Call
- Waiting for Connection
- During a Call
- Profile
- Settings
- My Circle
- Voice Rooms
- Support
- Permissions
- Troubleshooting
1. Overview
Camera New Vision connects you with Volunteers who can see your surroundings through a camera glasses attached to your phone and provide real-time visual guidance. As a User Needing Help, you stream video from your USB camera, and a volunteer can see your environment, help you navigate, read text, and more.
Key Features
- USB camera support: External camera mounted on glasses for wide-angle view
- Phone rear camera switching: Volunteer can request switching to your phone's built-in camera for reading text (price tags, documents)
- Video calls: Real-time video streaming
- Location sharing: Share your GPS location with the volunteer
- Voice rooms: Async voice messaging in community rooms
- Support: Voice-based support tickets
- My Circle: Trusted contacts for priority call routing
- Accessibility: TalkBack support, accessibility descriptions on key UI elements
- Multi-language: English and Russian UI localizations
2. Getting Started
System Requirements
- Glasses "Сamera New Vision"
- Android 8.0 or higher
- USB OTG-compatible phone
- Internet connection (Wi-Fi or mobile data)
Installation
The app is installed from Google Play store. On first launch, the app requests necessary permissions (camera, microphone).
3. Role Selection
On first launch (or after logout), the app presents a Role Selection screen with two cards:
- User Needing Help: Choose this role if you need visual assistance and have a USB camera connected.
- Volunteer: Choose this role if you want to help others by answering video calls.
Tap the User Needing Help card. The selection is saved and used for subsequent logins. You can switch roles by logging out and selecting a different role.
4. Login & Registration
Login Flow
- Enter Email: Type your email address and tap Send Code.
- Enter Verification Code: A 6-digit code is sent to your email. Enter it and tap Verify.
- If you are a new user, you will be asked to enter your full name after verifying the code.
- If you are an existing user, you are logged in immediately after verification.
Validation
- Email must be a valid email format.
- Verification code must be 6 digits.
- Name field is required for new users.
Email Verification
After registration, a verification email is sent. The app displays an Email Verification Pending card on the dashboard if your email is not yet verified. Tap Resend Verification Email to request a new verification link.
5. Onboarding
After your first login as a User Needing Help, an onboarding screen appears:
- Explains how to connect a USB camera, request help, and use the app.
- Includes a link to the project website.
- Tap Continue to proceed to the dashboard.
Onboarding is shown only once. It can be revisited by logging out and selecting the same role again (if the onboarding flag is reset).
6. Dashboard
The User Dashboard is your home screen. It displays:
Status Cards
- Connection Status: Shows whether the app is connected to the server (Connected / Connecting / Disconnected).
- Authorization Pending: Displayed if your account is not yet authorized by an administrator.
- Email Verification Pending: Displayed if your email is not verified, with a Resend button.
- Permissions Missing: Displayed if camera or microphone permissions are not granted. Tap to grant.
- USB Camera Not Connected: Displayed if no USB camera is detected. Connect a USB camera via OTG to proceed.
Call Request
- Select a call duration: 5 minutes, 15 minutes, or 30 minutes.
- Tap the Call button to request a volunteer.
- Profile: View and edit your profile.
- Circle: Manage your trusted circle contacts.
- Voice Rooms: Access community voice messaging rooms.
- Support: Contact support via voice messages.
Network & USB Handling
- The dashboard monitors network connectivity and updates the connection status automatically.
- USB camera hot-plugging is detected — connecting or disconnecting a USB camera updates the UI in real time.
7. Requesting a Call
- On the dashboard, ensure your USB camera is connected and permissions are granted.
- Select a call duration: 5, 15, or 30 minutes.
- Tap the Call button.
- The app sends a call request to the server and navigates to the Waiting for Connection screen.
Call Routing
Calls are routed based on your Circle Routing Mode (configurable in Settings):
- Everyone: Call is offered to all available volunteers.
- My Circle: Call is offered only to volunteers in your circle.
- My Circle First: Call is offered to your circle first, then to all volunteers if none are available.
8. Waiting for Connection
After requesting a call, the Waiting for Connection screen appears:
- Duration Display: Shows the requested call duration.
- Status Text: "Waiting for a volunteer..." → "Volunteer found!" → "Call connected".
- Cancel Button: Tap to cancel the call request and return to the dashboard.
- Ringback Tone: A ringback tone plays while waiting.
Outcomes
- Volunteer Found: The app navigates to the call screen.
- No Volunteers Available: A message is displayed and you are returned to the dashboard after 2 seconds.
- Cancelled: You return to the dashboard immediately.
9. During a Call
The call screen displays video from your USB camera and provides call controls:
Video Display
- Local Video (USB Camera): Full-screen view of the USB camera feed, sent to the volunteer via WebRTC.
- Remote Video (Volunteer): Picture-in-picture overlay showing the volunteer's camera (if bidirectional video is enabled).
Call Controls
- Mute Microphone: Toggle to mute/unmute your microphone.
- Audio Output: Cycle through available audio outputs (earpiece, speaker, USB headset, Bluetooth, wired headset).
- Flashlight: Toggle the USB camera's flashlight (if supported).
- End Call: End the current call. A confirmation dialog appears.
- Share Location: Toggle GPS location sharing with the volunteer. When active, the button turns orange and shows "Stop Location Sharing". If GPS is disabled, a dialog prompts you to enable it.
Camera Switching (Volunteer-Initiated)
The volunteer can request switching from your USB fisheye camera to your phone's built-in rear camera for reading text (price tags, documents, etc.). When this happens:
- The USB camera pauses and the phone's rear camera activates.
- The volunteer sees live video from your phone's rear camera.
- The volunteer can take high-resolution snapshots.
- When the volunteer toggles back, the USB camera resumes.
You don't need to do anything — the switch is controlled by the volunteer and happens automatically.
Bandwidth Warning
If the network connection is slow, a Bandwidth Warning banner appears. The app automatically reduces video resolution to maintain a usable video stream.
Network Reconnection
If the network drops during a call:
- A "Network disconnected" toast appears.
- The app attempts to reconnect.
- A reconnecting countdown is shown with the remaining grace period.
- If reconnection succeeds, the call resumes automatically.
- If the countdown expires, the call ends.
USB Camera Watchdog
The app monitors USB camera frame delivery. If frames stall (e.g., due to USB issues), it automatically attempts recovery by re-registering the camera callback or restarting the camera (up to 3 attempts).
Call Recording
Calls may be recorded server-side for quality and safety purposes. Each participant's audio and video are recorded as separate streams.
10. Profile
The Profile screen displays:
- Name: Your full name (editable).
- Email: Your registered email address.
- App Version: Current app version number.
Actions
- Edit Name: Tap the edit button to change your display name. A dialog appears with a text field.
- Logout: Tap to log out. A confirmation dialog appears. After logout, you return to the role selection screen. Your email is remembered for faster re-login.
- Delete Account: Tap to permanently delete your account. This action is irreversible.
11. Settings
The Settings screen allows you to configure:
Circle Routing Mode
Determines how your call requests are routed to volunteers:
- Everyone: Calls go to all available volunteers.
- My Circle: Calls go only to volunteers in your circle.
- My Circle First: Calls go to your circle first, then everyone if none are available.
Bidirectional Video
Toggle to enable/disable two-way video. When enabled, both you and the volunteer see each other's camera. When disabled, only your camera is shared (one-way video).
Alternative Codec
Toggle to use an alternative USB camera video format (YUYV instead of MJPEG). This may help with compatibility on certain devices.
Map Provider
Select the map provider for navigation (used by the volunteer to navigate to you):
- Google Maps: Default map provider.
- Yandex Maps: Alternative map provider (useful in regions where Yandex is preferred).
Spoken Languages
Tap the Languages button to select the languages you speak. This is used for matching in voice rooms and call routing. A language picker dialog appears with a list of supported languages.
12. My Circle
The My Circle screen lets you manage your trusted contacts (circle members):
Adding Members
- Enter the email address of the person you want to add.
- Tap Add.
- The person receives an invitation. Their status shows as Pending until they respond.
Member Status
Each circle member has one of three statuses:
- Pending (orange): Invitation sent, awaiting response.
- Confirmed (green): Member has accepted the invitation.
- Declined (red): Member has declined the invitation.
Removing Members
Tap the Remove button next to a member to remove them from your circle. A confirmation dialog appears.
Limits
- You cannot add yourself to your circle.
- You cannot add duplicate members.
- There is a maximum circle size limit (enforced by the server).
13. Voice Rooms
Voice Rooms are community spaces for async voice messaging:
Voice Rooms List
- Displays all available voice rooms.
- Each room shows:
- Room Type: Conversation, Marketplace, Acquaintance, or Unknown.
- Language: The room's language (shown if you speak multiple languages).
- Message Count: Total number of voice messages in the room.
- Last Message Time: Timestamp of the most recent message.
- Unread Badge: Number of unread messages (red badge).
Voice Room (Inside a Room)
- Message List: Scrollable list of voice messages from all participants.
- Play Button: Tap on any message to play the voice recording. Tap again to stop.
- Record Button: Tap to start recording a voice message. Tap again to stop and send.
- Recording status and timer are displayed while recording.
- Maximum recording duration is enforced automatically.
- Message Menu: Long-press or tap the menu icon on a message to:
- Delete (your own messages): Remove your voice message.
- Report (others' messages): Report an inappropriate voice message.
- Auto-Mark Read: Messages are automatically marked as read when you view the room.
14. Support
The Support screen provides a voice-based support ticket system:
Usage
- Record a Message: Tap the record button to start recording a voice message describing your issue.
- Send: Tap the record button again to stop and send the message.
- Play Responses: Support responses appear as voice messages in the thread. Tap to play them.
How It Works
- There is a single open support ticket per user at a time.
- The first message you send creates a ticket automatically.
- All subsequent messages are added to the same ticket thread.
- Support staff respond with voice messages in the same thread.
15. Permissions
The app requests the following runtime permissions:
- Camera: Required for USB camera video streaming.
- Record Audio (Microphone): Required for two-way audio during calls and voice messages.
- Location (GPS): Optional, for location sharing during calls.
Permission Handling
- Missing permissions are displayed as cards on the dashboard with a tap-to-grant action.
- The app continues to function for non-call features even if some permissions are denied.
- Call features require camera and microphone permissions.
16. Troubleshooting
USB Camera Not Detected
- Ensure the USB camera is properly connected via OTG.
- Disconnect and reconnect the USB camera.
- Try a different USB OTG adapter.
- Check that the USB camera is compatible with Android UVC.
Video Black Screen
- If the video is black during a call, the app's watchdog will attempt automatic recovery (up to 3 times).
- If recovery fails, end the call and restart.
- On Samsung Galaxy A54, ensure no USB headset is connected simultaneously with the USB camera (hardware limitation).
Audio Issues
- Use the Audio Output button to cycle through available audio outputs.
- If using a USB headset, ensure it is connected before starting the call.
- If audio is garbled or cuts out, check your network connection — low bandwidth affects audio quality.
Call Not Connecting
- Check your internet connection.
- No volunteers may be available — try again later.
- Verify your account is authorized (check dashboard for authorization pending card).
Network Reconnection
- If the network drops during a call, the app shows a reconnection countdown.
- Reconnect within the grace period to resume the call.
- If the countdown expires, the call ends automatically.
App Crashes or ANR
- The app includes an ANR watchdog that reports unresponsive states to Firebase Crashlytics.
- If the app becomes unresponsive, force-stop and restart it.
- Ensure you are running the latest version.