Eliminar valores innecesarios de la configuración
This commit is contained in:
@@ -1,37 +1,5 @@
|
|||||||
package es.freetimelab.farolero
|
package es.freetimelab.farolero
|
||||||
|
|
||||||
import android.os.Build
|
|
||||||
import io.flutter.embedding.engine.FlutterEngine
|
|
||||||
import io.flutter.embedding.android.FlutterActivity
|
import io.flutter.embedding.android.FlutterActivity
|
||||||
import io.flutter.plugin.common.MethodChannel
|
|
||||||
|
|
||||||
class MainActivity: FlutterActivity() {
|
class MainActivity: FlutterActivity()
|
||||||
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
|
|
||||||
super.configureFlutterEngine(flutterEngine)
|
|
||||||
|
|
||||||
MethodChannel(
|
|
||||||
flutterEngine.dartExecutor.binaryMessenger,
|
|
||||||
"farolero/app_info"
|
|
||||||
).setMethodCallHandler { call, result ->
|
|
||||||
if (call.method != "getAppVersion") {
|
|
||||||
result.notImplemented()
|
|
||||||
return@setMethodCallHandler
|
|
||||||
}
|
|
||||||
|
|
||||||
val info = packageManager.getPackageInfo(packageName, 0)
|
|
||||||
val versionCode = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
|
||||||
info.longVersionCode
|
|
||||||
} else {
|
|
||||||
@Suppress("DEPRECATION")
|
|
||||||
info.versionCode.toLong()
|
|
||||||
}
|
|
||||||
|
|
||||||
result.success(
|
|
||||||
mapOf(
|
|
||||||
"versionName" to (info.versionName ?: ""),
|
|
||||||
"versionCode" to versionCode,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import 'package:farolero/l10n/generated/app_localizations.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import '../servicios/servicio_idioma.dart';
|
import '../servicios/servicio_idioma.dart';
|
||||||
import '../servicios/servicio_perfil_usuario.dart';
|
import '../servicios/servicio_perfil_usuario.dart';
|
||||||
import '../servicios/servicio_version_app.dart';
|
|
||||||
import '../tema/componentes_farolero.dart';
|
import '../tema/componentes_farolero.dart';
|
||||||
import '../tema/tema_app.dart';
|
import '../tema/tema_app.dart';
|
||||||
|
|
||||||
@@ -15,16 +14,6 @@ class PantallaAjustes extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _PantallaAjustesState extends State<PantallaAjustes> {
|
class _PantallaAjustesState extends State<PantallaAjustes> {
|
||||||
double _volumen = 0.7;
|
|
||||||
bool _vibracion = true;
|
|
||||||
late final Future<String> _versionApp;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
_versionApp = ServicioVersionApp.obtenerVersion();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final l10n = AppLocalizations.of(context)!;
|
final l10n = AppLocalizations.of(context)!;
|
||||||
@@ -92,84 +81,6 @@ class _PantallaAjustesState extends State<PantallaAjustes> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
|
|
||||||
// Volumen de efectos de sonido
|
|
||||||
Card(
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(16),
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Text(l10n.soundVolume,
|
|
||||||
style: Theme.of(context).textTheme.titleLarge),
|
|
||||||
const SizedBox(height: 8),
|
|
||||||
Slider(
|
|
||||||
value: _volumen,
|
|
||||||
onChanged: (v) => setState(() => _volumen = v),
|
|
||||||
activeColor: TemaApp.colorAcento,
|
|
||||||
inactiveColor: TemaApp.colorTarjeta,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 12),
|
|
||||||
|
|
||||||
// Vibración
|
|
||||||
Card(
|
|
||||||
child: SwitchListTile(
|
|
||||||
title: Text(l10n.vibration),
|
|
||||||
value: _vibracion,
|
|
||||||
onChanged: (v) => setState(() => _vibracion = v),
|
|
||||||
contentPadding:
|
|
||||||
const EdgeInsets.symmetric(horizontal: 16, vertical: 4),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 12),
|
|
||||||
|
|
||||||
// Acerca de
|
|
||||||
Card(
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(16),
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Text(l10n.about,
|
|
||||||
style: Theme.of(context).textTheme.titleLarge),
|
|
||||||
const SizedBox(height: 12),
|
|
||||||
FutureBuilder<String>(
|
|
||||||
future: _versionApp,
|
|
||||||
builder: (context, snapshot) {
|
|
||||||
return _filaInfo(
|
|
||||||
context,
|
|
||||||
l10n.version,
|
|
||||||
snapshot.data ?? '-',
|
|
||||||
);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
const SizedBox(height: 8),
|
|
||||||
_filaInfo(context, l10n.developer, 'FreeTTimeLab'),
|
|
||||||
const SizedBox(height: 8),
|
|
||||||
SizedBox(
|
|
||||||
width: double.infinity,
|
|
||||||
child: OutlinedButton(
|
|
||||||
onPressed: () async {
|
|
||||||
final version = await _versionApp;
|
|
||||||
if (!context.mounted) return;
|
|
||||||
showLicensePage(
|
|
||||||
context: context,
|
|
||||||
applicationName: 'Farolero',
|
|
||||||
applicationVersion: version,
|
|
||||||
);
|
|
||||||
},
|
|
||||||
child: Text(l10n.licenses),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 16),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -199,16 +110,6 @@ class _PantallaAjustesState extends State<PantallaAjustes> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _filaInfo(BuildContext context, String etiqueta, String valor) {
|
|
||||||
return Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
||||||
children: [
|
|
||||||
Text(etiqueta, style: Theme.of(context).textTheme.bodyMedium),
|
|
||||||
Text(valor, style: Theme.of(context).textTheme.bodyLarge),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> _editarPerfil(BuildContext context) async {
|
Future<void> _editarPerfil(BuildContext context) async {
|
||||||
final servicioPerfil = context.read<ServicioPerfilUsuario>();
|
final servicioPerfil = context.read<ServicioPerfilUsuario>();
|
||||||
final actual = servicioPerfil.perfil;
|
final actual = servicioPerfil.perfil;
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
import 'package:flutter/services.dart';
|
|
||||||
|
|
||||||
class ServicioVersionApp {
|
|
||||||
static const _channel = MethodChannel('farolero/app_info');
|
|
||||||
|
|
||||||
static Future<String> obtenerVersion() async {
|
|
||||||
final Map<String, dynamic>? info;
|
|
||||||
try {
|
|
||||||
info = await _channel.invokeMapMethod<String, dynamic>(
|
|
||||||
'getAppVersion',
|
|
||||||
);
|
|
||||||
} on PlatformException {
|
|
||||||
return '-';
|
|
||||||
} on MissingPluginException {
|
|
||||||
return '-';
|
|
||||||
}
|
|
||||||
|
|
||||||
final versionName = info?['versionName']?.toString();
|
|
||||||
final versionCode = info?['versionCode']?.toString();
|
|
||||||
|
|
||||||
if (versionName == null || versionName.isEmpty) {
|
|
||||||
return '-';
|
|
||||||
}
|
|
||||||
if (versionCode == null || versionCode.isEmpty) {
|
|
||||||
return versionName;
|
|
||||||
}
|
|
||||||
return '$versionName+$versionCode';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user