capabilitiesForOperatingSystem static method

  1. @visibleForTesting
FilegateCapabilities capabilitiesForOperatingSystem(
  1. String operatingSystem
)

Implementation

@visibleForTesting
static FilegateCapabilities capabilitiesForOperatingSystem(
  String operatingSystem,
) {
  return switch (operatingSystem) {
    'android' => const FilegateCapabilities(
      supportsFilePicking: true,
      supportsDirectoryPicking: true,
      supportsMixedPicking: false,
      supportsInitialDirectory: true,
      supportsPersistedAccess: true,
      supportsNativeUriRead: true,
      supportsFileSaving: true,
      supportsFileWriting: true,
      supportsFileStreamWriting: true,
    ),
    'ios' => const FilegateCapabilities(
      supportsFilePicking: true,
      supportsDirectoryPicking: true,
      supportsMixedPicking: true,
      supportsInitialDirectory: true,
      supportsPersistedAccess: false,
      supportsNativeUriRead: true,
      supportsFileSaving: true,
      supportsFileWriting: true,
      supportsFileStreamWriting: true,
    ),
    'macos' => const FilegateCapabilities(
      supportsFilePicking: true,
      supportsDirectoryPicking: true,
      supportsMixedPicking: true,
      supportsInitialDirectory: true,
      supportsPersistedAccess: true,
      supportsNativeUriRead: false,
      supportsFileSaving: true,
      supportsFileWriting: true,
      supportsFileStreamWriting: true,
    ),
    'windows' => const FilegateCapabilities(
      supportsFilePicking: true,
      supportsDirectoryPicking: true,
      supportsMixedPicking: false,
      supportsInitialDirectory: true,
      supportsPersistedAccess: true,
      supportsNativeUriRead: false,
      supportsFileSaving: true,
      supportsFileWriting: true,
      supportsFileStreamWriting: true,
    ),
    'linux' => const FilegateCapabilities(
      supportsFilePicking: true,
      supportsDirectoryPicking: true,
      supportsMixedPicking: false,
      supportsInitialDirectory: true,
      supportsPersistedAccess: true,
      supportsNativeUriRead: false,
      supportsFileSaving: true,
      supportsFileWriting: true,
      supportsFileStreamWriting: true,
    ),
    _ => const FilegateCapabilities(
      supportsFilePicking: false,
      supportsDirectoryPicking: false,
      supportsMixedPicking: false,
      supportsInitialDirectory: false,
      supportsPersistedAccess: false,
      supportsNativeUriRead: false,
    ),
  };
}