first commit
This commit is contained in:
3
lib/services/global_var.dart
Normal file
3
lib/services/global_var.dart
Normal file
@ -0,0 +1,3 @@
|
||||
class GlobalVar {
|
||||
String backPressed = 'backNormal';
|
||||
}
|
39
lib/services/my_easyloading.dart
Normal file
39
lib/services/my_easyloading.dart
Normal file
@ -0,0 +1,39 @@
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
|
||||
class MyEasyLoading {
|
||||
showLoading() {
|
||||
EasyLoading.show(
|
||||
status: 'loading...',
|
||||
maskType: EasyLoadingMaskType.black,
|
||||
dismissOnTap: false,
|
||||
);
|
||||
}
|
||||
|
||||
dismissLoading() {
|
||||
EasyLoading.dismiss();
|
||||
}
|
||||
|
||||
customLoading(String message) {
|
||||
EasyLoading.show(
|
||||
status: message,
|
||||
maskType: EasyLoadingMaskType.black,
|
||||
dismissOnTap: false,
|
||||
);
|
||||
}
|
||||
|
||||
showSuccess(String message) {
|
||||
EasyLoading.showSuccess(message);
|
||||
}
|
||||
|
||||
showError(String message) {
|
||||
EasyLoading.showError(message);
|
||||
}
|
||||
|
||||
showInfo(String message) {
|
||||
EasyLoading.showInfo(message);
|
||||
}
|
||||
|
||||
showProgress(double progress, String status) {
|
||||
EasyLoading.showProgress(progress, status: status);
|
||||
}
|
||||
}
|
25
lib/services/my_storage.dart
Normal file
25
lib/services/my_storage.dart
Normal file
@ -0,0 +1,25 @@
|
||||
import 'package:get_storage/get_storage.dart';
|
||||
|
||||
class MyStorage {
|
||||
final box = GetStorage();
|
||||
|
||||
init() async {
|
||||
await GetStorage.init();
|
||||
}
|
||||
|
||||
write(String key, dynamic value) async {
|
||||
await box.write(key, value);
|
||||
}
|
||||
|
||||
read(String key) {
|
||||
return box.read(key);
|
||||
}
|
||||
|
||||
remove(String key) async {
|
||||
await box.remove(key);
|
||||
}
|
||||
|
||||
clear() async {
|
||||
await box.erase();
|
||||
}
|
||||
}
|
115
lib/services/my_tts.dart
Normal file
115
lib/services/my_tts.dart
Normal file
@ -0,0 +1,115 @@
|
||||
import 'dart:io' show Platform;
|
||||
|
||||
import 'package:flutter/foundation.dart' show kIsWeb;
|
||||
import 'package:flutter_tts/flutter_tts.dart';
|
||||
|
||||
import '../app/app.logger.dart';
|
||||
|
||||
enum TtsState { playing, stopped, paused, continued }
|
||||
|
||||
// create a singleton class of MyTts which have init() method
|
||||
class MyTts {
|
||||
final log = getLogger('MyTts');
|
||||
late FlutterTts flutterTts;
|
||||
TtsState ttsState = TtsState.stopped;
|
||||
|
||||
bool get isAndroid => !kIsWeb && Platform.isAndroid;
|
||||
|
||||
Future init() async {
|
||||
flutterTts = FlutterTts();
|
||||
_setAwaitOptions();
|
||||
|
||||
if (isAndroid) {
|
||||
await getVoices();
|
||||
await _getLanguages();
|
||||
await _getEngines();
|
||||
await _getDefaultVoice();
|
||||
await _setLanguage();
|
||||
|
||||
// male voice
|
||||
// await flutterTts.setVoice({"name": "id-id-x-dfz#male_2-local"});
|
||||
}
|
||||
|
||||
flutterTts.setStartHandler(() {
|
||||
log.i("Playing");
|
||||
ttsState = TtsState.playing;
|
||||
});
|
||||
|
||||
flutterTts.setCompletionHandler(() {
|
||||
log.i("Complete");
|
||||
ttsState = TtsState.stopped;
|
||||
});
|
||||
|
||||
flutterTts.setCancelHandler(() {
|
||||
log.i("Cancel");
|
||||
ttsState = TtsState.stopped;
|
||||
});
|
||||
|
||||
flutterTts.setPauseHandler(() {
|
||||
log.i("Paused");
|
||||
ttsState = TtsState.paused;
|
||||
});
|
||||
|
||||
flutterTts.setContinueHandler(() {
|
||||
log.i("Continued");
|
||||
ttsState = TtsState.continued;
|
||||
});
|
||||
|
||||
flutterTts.setErrorHandler((msg) {
|
||||
log.e("error: $msg");
|
||||
ttsState = TtsState.stopped;
|
||||
});
|
||||
}
|
||||
|
||||
Future<dynamic> _getLanguages() async => await flutterTts.getLanguages;
|
||||
|
||||
Future<dynamic> _getEngines() async => await flutterTts.getEngines;
|
||||
|
||||
Future<dynamic> getVoices() async => await flutterTts.getVoices;
|
||||
|
||||
Future<dynamic> _setLanguage() async => await flutterTts.setLanguage("id-ID");
|
||||
|
||||
// Future setVoice() async {
|
||||
// for (var voice in await flutterTts.getVoices) {
|
||||
// if (voice.
|
||||
// }
|
||||
// }
|
||||
|
||||
Future _getDefaultVoice() async {
|
||||
var voice = await flutterTts.getDefaultVoice;
|
||||
if (voice != null) {
|
||||
log.i(voice);
|
||||
}
|
||||
}
|
||||
|
||||
Future speak(String text) async {
|
||||
await flutterTts.setVolume(1.0);
|
||||
await flutterTts.setSpeechRate(0.5);
|
||||
await flutterTts.setPitch(1.0);
|
||||
|
||||
if (text.isNotEmpty) {
|
||||
var result = await flutterTts.speak(text);
|
||||
if (result == 1) {
|
||||
ttsState = TtsState.playing;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Future _setAwaitOptions() async {
|
||||
await flutterTts.awaitSpeakCompletion(true);
|
||||
}
|
||||
|
||||
Future stop() async {
|
||||
var result = await flutterTts.stop();
|
||||
if (result == 1) {
|
||||
ttsState = TtsState.stopped;
|
||||
}
|
||||
}
|
||||
|
||||
Future pause() async {
|
||||
var result = await flutterTts.pause();
|
||||
if (result == 1) {
|
||||
ttsState = TtsState.paused;
|
||||
}
|
||||
}
|
||||
}
|
16
lib/services/other_function.dart
Normal file
16
lib/services/other_function.dart
Normal file
@ -0,0 +1,16 @@
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
class MyFunction {
|
||||
String convertDateTime(String input) {
|
||||
DateTime dateTime = DateTime.parse(input);
|
||||
String formattedDateTime =
|
||||
DateFormat('dd-MM-yyyy | hh.mm.ss a').format(dateTime);
|
||||
return formattedDateTime;
|
||||
}
|
||||
|
||||
// chnage | to \n in string
|
||||
String convertDateTime2(String input) {
|
||||
input = input.replaceAll('| ', '\n');
|
||||
return input;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user