apk
This commit is contained in:
parent
7c0c85addb
commit
4686243e01
6 changed files with 34 additions and 44 deletions
Binary file not shown.
|
|
@ -1,3 +1,3 @@
|
||||||
set -e -v
|
set -e -v
|
||||||
cp ~/mnemo_cards/build/app/outputs/flutter-apk/app-arm64-v8a-release.apk ~/mnemo_cards_telegram_bot/apks/app.apk
|
cp ~/mnemo_cards/build/app/outputs/flutter-apk/app-arm64-v8a-release.apk ~/mnemo_cards_telegram_bot/apks/admin_app.apk
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
|
|
||||||
const ADMIN_BUILD = true;
|
const ADMIN_BUILD = false;
|
||||||
|
|
@ -3,13 +3,18 @@ import 'package:flutter_tts/flutter_tts.dart';
|
||||||
import '../main.dart';
|
import '../main.dart';
|
||||||
|
|
||||||
class AudioPlayer {
|
class AudioPlayer {
|
||||||
static Future<void> playAudio(String? audio) async {
|
static Future<void> playAudio(String? audio, {String? lang}) async {
|
||||||
if (globalSharedPreferences.getBool('sound_on') != false && audio != null) {
|
if (globalSharedPreferences.getBool('sound_on') != false && audio != null) {
|
||||||
FlutterTts flutterTts = FlutterTts();
|
FlutterTts flutterTts = FlutterTts();
|
||||||
var playText = audio;
|
var playText = audio;
|
||||||
if (audio.contains('_')) {
|
if (audio.contains('_')) {
|
||||||
final lang = audio.split('_').first;
|
final language = audio.split('_').first;
|
||||||
playText = audio.replaceFirst('${lang}_', '');
|
playText = audio.replaceFirst('${language}_', '');
|
||||||
|
if (lang == null) {
|
||||||
|
await flutterTts.setLanguage(language);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (lang != null) {
|
||||||
await flutterTts.setLanguage(lang);
|
await flutterTts.setLanguage(lang);
|
||||||
}
|
}
|
||||||
await flutterTts.setSpeechRate(0.5);
|
await flutterTts.setSpeechRate(0.5);
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import 'package:flutter_tts/flutter_tts.dart';
|
||||||
import 'package:mnemo_cards/di/locator.dart';
|
import 'package:mnemo_cards/di/locator.dart';
|
||||||
import 'package:mnemo_cards/features/yandex_ads/yandex_ads.dart';
|
import 'package:mnemo_cards/features/yandex_ads/yandex_ads.dart';
|
||||||
import 'package:flutter/painting.dart';
|
import 'package:flutter/painting.dart';
|
||||||
|
import 'package:mnemo_cards/managers/audio_player.dart';
|
||||||
import 'package:mnemo_cards/utils/color_helper.dart';
|
import 'package:mnemo_cards/utils/color_helper.dart';
|
||||||
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
|
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
|
|
@ -229,27 +230,23 @@ class FrontCard extends StatelessWidget {
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
),
|
),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
final sp = await SharedPreferences.getInstance();
|
if (card.original != null) {
|
||||||
if (sp.getBool('sound_on') != false &&
|
AudioPlayer.playAudio(
|
||||||
card.original != null) {
|
card.original!,
|
||||||
FlutterTts flutterTts = FlutterTts();
|
lang: 'es-ES',
|
||||||
await flutterTts.setLanguage('es-ES');
|
);
|
||||||
await flutterTts.setSpeechRate(0.4);
|
|
||||||
flutterTts.speak(card.original!);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
final sp = await SharedPreferences.getInstance();
|
if (card.translation != null) {
|
||||||
if (sp.getBool('sound_on') != false &&
|
if (card.original != null) {
|
||||||
card.translation != null) {
|
AudioPlayer.playAudio(
|
||||||
FlutterTts flutterTts = FlutterTts();
|
card.translation!,
|
||||||
await flutterTts.setLanguage('ru');
|
lang: 'ru',
|
||||||
await flutterTts.setSpeechRate(0.5);
|
);
|
||||||
flutterTts.speak(
|
}
|
||||||
card.translation!,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
child: MnemoText(
|
child: MnemoText(
|
||||||
|
|
@ -271,14 +268,10 @@ class FrontCard extends StatelessWidget {
|
||||||
padding: EdgeInsets.only(top: 4.0.h * alpha),
|
padding: EdgeInsets.only(top: 4.0.h * alpha),
|
||||||
child: GestureDetector(
|
child: GestureDetector(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
final sp =
|
if (card.transcription != null && card.transcriptionMnemo != null) {
|
||||||
await SharedPreferences.getInstance();
|
AudioPlayer.playAudio(
|
||||||
if (sp.getBool('sound_on') != false) {
|
'${card.transcription} - ${card.transcriptionMnemo}',
|
||||||
FlutterTts flutterTts = FlutterTts();
|
lang: 'ru',
|
||||||
await flutterTts.setLanguage('ru');
|
|
||||||
await flutterTts.setSpeechRate(0.5);
|
|
||||||
flutterTts.speak(
|
|
||||||
"${card.transcription} - ${card.transcriptionMnemo}",
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -316,14 +309,10 @@ class FrontCard extends StatelessWidget {
|
||||||
if (card.mnemo?.trim().isNotEmpty != true) {
|
if (card.mnemo?.trim().isNotEmpty != true) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final sp = await SharedPreferences.getInstance();
|
AudioPlayer.playAudio(
|
||||||
if (sp.getBool('sound_on') != false) {
|
card.mnemo!.replaceAll(RegExp(r'[\]\[]'), ''),
|
||||||
FlutterTts flutterTts = FlutterTts();
|
lang: 'ru',
|
||||||
await flutterTts.setLanguage('ru');
|
);
|
||||||
await flutterTts.setSpeechRate(0.5);
|
|
||||||
flutterTts.speak(
|
|
||||||
card.mnemo!.replaceAll(RegExp(r'[\]\[]'), ''));
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
child: MnemoText(
|
child: MnemoText(
|
||||||
card.mnemo?.isNotEmpty == true ? card.mnemo : ' ',
|
card.mnemo?.isNotEmpty == true ? card.mnemo : ' ',
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:mnemo_cards/main.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
|
|
||||||
class SharedPrefButton extends StatefulWidget {
|
class SharedPrefButton extends StatefulWidget {
|
||||||
|
|
@ -38,13 +39,8 @@ class _SharedPrefButtonState extends State<SharedPrefButton> {
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
SharedPreferences.getInstance().then((v) {
|
_sp = globalSharedPreferences;
|
||||||
_sp = v;
|
value = _sp!.getBool(widget.spKey) ?? false;
|
||||||
value = _sp!.getBool(widget.spKey) ?? false;
|
|
||||||
if (mounted) {
|
|
||||||
setState(() {});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
_streamSubscription = Stream.periodic(const Duration(milliseconds: 500),
|
_streamSubscription = Stream.periodic(const Duration(milliseconds: 500),
|
||||||
(_) => _sp?.getBool(widget.spKey) ?? false).distinct().listen((v) {
|
(_) => _sp?.getBool(widget.spKey) ?? false).distinct().listen((v) {
|
||||||
value = v;
|
value = v;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue