Camera New Vision — User Manual (Volunteer)
Table of Contents
- Overview
- Getting Started
- Role Selection
- Login & Registration
- Onboarding
- Dashboard
- Availability & Schedule
- Incoming Call
- During a Call
- Navigation & Map
- Profile
- Settings
- My Circle
- Voice Rooms
- Support
- Permissions
- Troubleshooting
1. Overview
Camera New Vision connects Volunteers with Users Needing Help through live video calls. As a volunteer, you receive calls from users who stream video from a USB camera attached to their phone. You can see their surroundings, provide guidance, take snapshots, switch to their phone's rear camera for reading text, and navigate to their location.
Key Features
- Video calls: Real-time video streaming from the user's camera glasses or phone camera
- Video controls: Pinch-to-zoom (1x–4x), pan, rotation adjustment
- Phone rear camera switching: Request the user to switch from USB fisheye camera to phone rear camera for reading text
- Snapshots: Capture high-resolution stills from the user's phone rear camera
- Clarity mode: Request higher-resolution USB camera video
- Live navigation: Map integration (Google Maps or Yandex Maps) with route drawing
- Availability scheduling: Set day-of-week and time-of-day availability
- Push notifications: For reliable incoming calls
- Voice rooms: Async voice messaging in community rooms
- Support: Voice-based support tickets
- My Circle: Trusted contacts for call routing
- Accessibility: TalkBack support, accessibility descriptions on key UI elements
- Multi-language: English and Russian UI localizations
2. Getting Started
System Requirements
- Android 8.0 or higher
- Internet connection (Wi-Fi or mobile data)
- USB or bluetooth audio headset (recommened)
Installation
The app is installed from Google Play market. On first launch, the app requests necessary permissions (microphone, notifications).
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 Volunteer 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 Volunteer, an onboarding screen appears:
- Explains the volunteer role, availability settings, and how calls work.
- 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 Volunteer Dashboard is your home screen. It displays:
Status Cards
- Connection Status: Shows server connection state.
- Availability Mode: Current availability setting (Always / Schedule / Off).
- Authorization Pending: Displayed if not yet authorized by an administrator.
- Email Verification Pending: Displayed if email is not verified.
- FCM Registration: Shows whether push notifications are registered.
- Profile: View and edit your profile.
- Schedule: Set day-of-week and time-of-day availability (shown when mode is Schedule).
- Circle: Manage your trusted circle contacts.
- Voice Rooms: Access community voice messaging rooms.
- Support: Contact support via voice messages.
Overlay Permission
You may be prompted to grant Display over other apps permission, which allows the incoming call screen to appear over other apps.
Battery Optimization
When you set as Not available or outside your schedule, the app disconnects from the server and stops background services to conserve battery.
7. Availability & Schedule
Availability Modes
You can set your availability mode from the dashboard:
- Always: Receive calls at any time.
- Schedule: Receive calls only during scheduled hours (see below).
- Not available: Do not receive any calls.
Tap the availability selector to change modes. When switching to Always or Schedule, the app connects to the server and registers as available. When switching to Off, the app disconnects from the call listener.
Volunteer Schedule
The Volunteer Schedule screen allows you to set your availability by day of week and time of day:
Day Configuration
- Each day of the week has a checkbox to enable/disable that day.
- Days are displayed in the order determined by your locale's first day of week setting.
Time Configuration
- For each enabled day, set a Start Time and End Time using time picker dialogs.
- Start time must be before end time.
- Times are in 24-hour format.
Status Display
A status indicator shows:
- Disabled (gray): No days are enabled.
- Within Schedule (green): Current time falls within a scheduled availability window.
- Outside Schedule (orange): Schedule is enabled but current time is outside all windows.
Server Sync
Schedule changes are automatically pushed to the server, so the call routing system knows when you are available.
8. Incoming Call
When a call request is routed to you, the Incoming Call screen appears:
- Caller Name: Displays the name of the user requesting help.
- Call Duration: Shows the requested duration.
- Accept Button (green): Tap to accept the call.
- Reject Button (red): Tap to decline the call.
Behavior
- The screen appears over the lock screen with a ringtone and vibration.
- The back button is disabled — you must explicitly accept or reject.
- If the call is cancelled by the user before you respond, the screen dismisses automatically.
After accepting, you are navigated to the call screen.
9. During a Call
The call screen displays the user's remote video and provides controls for assisting them:
Video Display
- Remote Video (User's Camera): Full-screen view of the user's glasses camera or phone camera feed.
Video Controls
- Pinch to Zoom: Use two-finger pinch to zoom in/out (1x to 4x).
- Pan: When zoomed in, drag with one finger to pan across the video.
- Rotation Slider: Adjust video rotation from -45° to +45° (slider at top of screen).
- Single Tap: Toggle visibility of all control buttons.
Call Controls (Bottom Bar)
- Mute Microphone: Toggle to mute/unmute your microphone.
- Speaker: Cycle through audio outputs (earpiece, speaker, Bluetooth, wired headset).
- End Call: End the current call.
- Lock Orientation: Lock/unlock the screen orientation to the current rotation.
Navigator Controls (Top Bar — Portrait Mode)
In portrait mode, additional buttons appear in the top-left and top-right corners:
Top-Right:
- Toggle Camera: Switch your own camera between front and rear (only if bidirectional video is enabled).
- Toggle Phone Camera: Request the user to switch from glasses camera to phone main camera. This enables snapshots.
- Snapshot: Take a high-resolution snapshot from the user's phone rear camera. Only available when rear camera mode is active. The snapshot appears as an overlay image that you can dismiss by tapping.
Navigation Status Bar
A status bar at the top shows:
- Battery Level: The user's phone battery percentage and charging status.
- Video Delay: Real-time video delay measurement (green < 3s, yellow 3-5s, red > 5s).
Reconnection
If the user's network drops:
- A reconnecting message appears with a countdown.
- If the user reconnects within the grace period, the call resumes.
- If the countdown expires, the call ends.
Orientation
The call screen supports both portrait and landscape orientations. Control buttons are rearranged automatically based on orientation. You can use orientation lock button to lock the current orientation.
Call Recording
Calls may be recorded server-side for quality, safety purposes and for improving our service.
10. Navigation & Map
Map Pane
During a call, you can toggle a map overlay showing the user's location:
- Toggle Map: Show/hide the navigation map overlay.
- The map provider (Google Maps or Yandex Maps) is determined by your Settings preference.
Setting a Destination
- Tap on the map to set a destination. The app geocodes the tapped location and draws a route from the user's location to the destination.
- Clear Destination: Clear the current destination and route.
Location Sharing
The user must enable location sharing on their side. When enabled, their GPS location is streamed to you in real time and displayed on the map.
11. 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.
12. Settings
The Settings screen allows you to configure:
Call Routing Mode
Determines how call requests from users in your circle are routed to you:
- Everyone: You receive calls from all users.
- My Circle: You receive calls only from users in your circle.
Bidirectional Video
Toggle to enable/disable two-way video. When enabled, both you and the user see each other's camera. When disabled, only the user's 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:
- 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.
13. 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).
14. 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.
15. 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.
16. Permissions
The app requests the following runtime permissions:
- Camera: Required for video streaming (if bidirectional video is enabled).
- Record Audio (Microphone): Required for two-way audio during calls and voice messages.
- Notifications: Required for receiving incoming call push notifications.
- Display Over Other Apps: Optional, allows the incoming call screen to appear over other apps.
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.
17. Troubleshooting
Cannot Receive Calls
- Ensure availability mode is not Off.
- Check that notifications are enabled for the app.
- Verify FCM registration status on the dashboard.
- Grant Display over other apps permission.
- Check that your email is verified and account is authorized.
- If using Schedule mode, verify you are within a scheduled availability window.
Video Black Screen
- If the user's video is black, they may have USB camera issues on their side.
- The user's app has a watchdog that attempts automatic recovery (up to 3 times).
- If the issue persists, ask the user to end and restart the call.
Audio Issues
- Use the Speaker button to cycle through available audio outputs.
- If audio is garbled or cuts out, the user's network connection may be slow — low bandwidth affects audio quality.
Call Not Connecting
- Check your internet connection.
- Verify your account is authorized (check dashboard for authorization pending card).
- Ensure your availability mode is set to Always or Schedule (within schedule window).
Network Reconnection
- If the user's network drops during a call, a reconnection countdown appears.
- If the user reconnects within the grace period, the call resumes.
- If the countdown expires, the call ends automatically.
- The app automatically recovers from Janus room destruction by requesting a room re-creation.
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.