Infrastructure low complexity mobile
0
Dependencies
1
Dependents
0
Entities
0
Integrations

Description

Requests and tracks microphone access permission using the same in-app rationale pattern established by the Calendar Permission Handler for calendar sync. Presents a contextual explanation before the OS permission dialog and handles denied/permanently-denied states gracefully.

Feature: Speech-to-Text Input

microphone-permission-handler

Sources & reasoning

Microphone access is a sensitive OS permission requiring an in-app rationale before the system dialog, identical in pattern to the Calendar Permission Handler used in calendar-sync. Isolating permission logic avoids duplicating platform_channel calls and keeps the service layer free of OS-dialog concerns.

No source references — this artifact was included based on reasoning alone (see above).

Responsibilities

  • Check current microphone permission status at session start
  • Present in-app rationale before triggering the OS permission dialog
  • Handle denied and permanently-denied permission states with settings deep-link
  • Expose permission status stream for reactive UI updates

Interfaces

checkPermission() -> Future<PermissionStatus>
requestPermission() -> Future<PermissionStatus>
openAppSettings()

Relationships

Dependents (1)

Components that depend on this component