This commit is contained in:
OkaykOrhmn 2024-09-26 10:46:09 +03:30
parent a4a9d3e565
commit 5b83ec4bbf
3 changed files with 28 additions and 3 deletions

View File

@ -4,6 +4,7 @@ import 'dart:async';
import 'dart:convert';
import 'package:didvan/models/ai/files_model.dart';
import 'package:didvan/services/app_initalizer.dart';
import 'package:didvan/services/storage/storage.dart';
import 'package:flutter/foundation.dart';
import 'package:http/http.dart' as http;
@ -70,7 +71,9 @@ class AiApiService {
filename = file.basename;
mimeType = file.isAudio()
? 'audio/m4a'
? file.isRecorded
? 'audio/${kIsWeb && AppInitializer.getOperatingSystem() == 'iOS' ? 'webm' : 'm4a'}'
: 'audio/${file.extname.replaceAll('.', '')}'
: file.isImage()
? 'image/png'
: 'application/pdf';

View File

@ -1,3 +1,5 @@
// ignore_for_file: avoid_web_libraries_in_flutter
import 'package:didvan/main.dart';
import 'package:didvan/models/notification_message.dart';
import 'package:didvan/models/requests/news.dart';
@ -14,6 +16,7 @@ import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher_string.dart';
import 'dart:html' as html;
class AppInitializer {
static String? fcmToken;
@ -39,6 +42,24 @@ class AppInitializer {
});
}
static String getOperatingSystem() {
final userAgent = html.window.navigator.userAgent.toLowerCase();
if (userAgent.contains('windows')) {
return 'Windows';
} else if (userAgent.contains('mac os')) {
return 'MacOS';
} else if (userAgent.contains('iphone') || userAgent.contains('ipad')) {
return 'iOS';
} else if (userAgent.contains('android')) {
return 'Android';
} else if (userAgent.contains('linux')) {
return 'Linux';
} else {
return 'Unknown';
}
}
static Future<SettingsData> initilizeSettings() async {
try {
final brightness = await StorageService.getValue(key: 'brightness');

View File

@ -8,6 +8,7 @@ import 'package:didvan/models/ai/bots_model.dart';
import 'package:didvan/models/ai/chats_model.dart';
import 'package:didvan/models/ai/files_model.dart';
import 'package:didvan/models/ai/messages_model.dart';
import 'package:didvan/services/app_initalizer.dart';
import 'package:didvan/services/media/media.dart';
import 'package:didvan/services/media/voice.dart';
import 'package:didvan/utils/action_sheet.dart';
@ -347,7 +348,7 @@ class _AiMessageBarState extends State<AiMessageBar> {
state.file = FilesModel(
path.toString(),
name:
'${DateTime.now().millisecondsSinceEpoch ~/ 1000}.m4a',
'${DateTime.now().millisecondsSinceEpoch ~/ 1000}.${kIsWeb && AppInitializer.getOperatingSystem() == 'iOS' ? 'webm' : 'm4a'}',
isRecorded: true,
audio: true,
image: false,