61 lines
1.4 KiB
Dart
61 lines
1.4 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:didvan/providers/core_provider.dart';
|
|
import 'package:didvan/services/network/request.dart';
|
|
import 'package:didvan/services/network/request_helper.dart';
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter_vibrate/flutter_vibrate.dart';
|
|
import 'package:record/record.dart';
|
|
|
|
class DirectState extends CoreProvier {
|
|
final _recorder = Record();
|
|
|
|
File? recordedFile;
|
|
|
|
bool isRecording = false;
|
|
|
|
Future<void> getMessages(int id) async {
|
|
final RequestService service = RequestService(RequestHelper.direct(id));
|
|
await service.httpGet();
|
|
if (service.isSuccess) {}
|
|
}
|
|
|
|
void deleteRecordedFile() {
|
|
recordedFile!.delete();
|
|
recordedFile = null;
|
|
notifyListeners();
|
|
}
|
|
|
|
Future<void> startRecording() async {
|
|
await _recorder.hasPermission();
|
|
if (!kIsWeb) {
|
|
Vibrate.feedback(FeedbackType.medium);
|
|
}
|
|
isRecording = true;
|
|
_recorder.start();
|
|
notifyListeners();
|
|
}
|
|
|
|
Future<void> stopRecording(bool sendImidiately) async {
|
|
final path = await _recorder.stop();
|
|
isRecording = false;
|
|
if (path == null) {
|
|
notifyListeners();
|
|
return;
|
|
}
|
|
if (kIsWeb) {
|
|
final uri = Uri.file(path);
|
|
recordedFile = File.fromUri(uri);
|
|
} else {
|
|
recordedFile = File(path);
|
|
}
|
|
if (sendImidiately) {
|
|
await sendMessage();
|
|
} else {
|
|
notifyListeners();
|
|
}
|
|
}
|
|
|
|
Future<void> sendMessage() async {}
|
|
}
|