summaryrefslogtreecommitdiffstats
path: root/lib/presentation/screens/settings
diff options
context:
space:
mode:
authorLisandro Pérez Meyer <lpmeyer@ics.com>2023-11-16 22:44:34 -0300
committerLisandro Perez Meyer <lpmeyer@ics.com>2023-11-17 01:48:26 +0000
commit4d77bab5a0f698943d1abf74482eecef7cc95f08 (patch)
tree49e0a590b5903cc7553b1a4fc3cb2fbcd13cebf4 /lib/presentation/screens/settings
parent6a00ac1f8613048b5c1f7ecdbd1adcbbcfdca5ed (diff)
Bug fixes. Fixed Fan mode selection off state bug.
Fixes ICS' internal AGL-48,49,50. Original from Sabin Sajeevan <ssajeevan@ics.com> Bug-AGL: SPEC-4971 Change-Id: I66c875551a69a1b53eee2d6e1d3fa725b20ff41b Signed-off-by: Lisandro Pérez Meyer <lpmeyer@ics.com>
Diffstat (limited to 'lib/presentation/screens/settings')
-rw-r--r--lib/presentation/screens/settings/settings_screens/audio_settings/widget/audio_content.dart11
-rw-r--r--lib/presentation/screens/settings/settings_screens/date_time/date_time_screen.dart5
-rw-r--r--lib/presentation/screens/settings/settings_screens/date_time/time/time_screen.dart98
-rw-r--r--lib/presentation/screens/settings/settings_screens/wired/wired_screen.dart189
4 files changed, 234 insertions, 69 deletions
diff --git a/lib/presentation/screens/settings/settings_screens/audio_settings/widget/audio_content.dart b/lib/presentation/screens/settings/settings_screens/audio_settings/widget/audio_content.dart
index 8fb0437..a08796d 100644
--- a/lib/presentation/screens/settings/settings_screens/audio_settings/widget/audio_content.dart
+++ b/lib/presentation/screens/settings/settings_screens/audio_settings/widget/audio_content.dart
@@ -17,7 +17,13 @@ class AudioContent extends ConsumerWidget {
mainAxisAlignment: MainAxisAlignment.center,
children: [
CustomTrebleSlider(),
+ SizedBox(
+ height: 120,
+ ),
CustomBassSlider(),
+ SizedBox(
+ height: 120,
+ ),
CustomRearFrontSlider(),
],
),
@@ -30,9 +36,8 @@ class AudioContent extends ConsumerWidget {
text: 'Reset to Default',
onTap: () {
ref.read(audioStateProvider.notifier).resetToDefaults();
- },
- ),
-
+ },
+ ),
),
],
),
diff --git a/lib/presentation/screens/settings/settings_screens/date_time/date_time_screen.dart b/lib/presentation/screens/settings/settings_screens/date_time/date_time_screen.dart
index 2365ecc..c9a3abf 100644
--- a/lib/presentation/screens/settings/settings_screens/date_time/date_time_screen.dart
+++ b/lib/presentation/screens/settings/settings_screens/date_time/date_time_screen.dart
@@ -1,4 +1,5 @@
import 'package:flutter_ics_homescreen/export.dart';
+import 'package:intl/intl.dart';
class DateTimePage extends ConsumerWidget {
const DateTimePage({super.key});
@@ -7,6 +8,8 @@ class DateTimePage extends ConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final dateTime = ref.watch(dateTimeStateProvider.select((val) => val));
+ DateFormat dateFormat = DateFormat('hh:mm a');
+ final currentime = ref.watch(currentTimeProvider);
return Scaffold(
body: Column(
@@ -36,7 +39,7 @@ class DateTimePage extends ConsumerWidget {
UnitsTile(
image: "assets/Time.svg",
title: 'Time',
- unitName: dateTime.time,
+ unitName: dateFormat.format(currentime),
hasSwich: true,
voidCallback: () {
context
diff --git a/lib/presentation/screens/settings/settings_screens/date_time/time/time_screen.dart b/lib/presentation/screens/settings/settings_screens/date_time/time/time_screen.dart
index 61131b5..de8adb4 100644
--- a/lib/presentation/screens/settings/settings_screens/date_time/time/time_screen.dart
+++ b/lib/presentation/screens/settings/settings_screens/date_time/time/time_screen.dart
@@ -1,6 +1,7 @@
import 'package:flutter_ics_homescreen/export.dart';
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
+import 'package:new_virtual_keyboard/virtual_keyboard.dart';
class TimePage extends ConsumerWidget {
const TimePage({super.key});
@@ -45,9 +46,22 @@ class TimeScreenWidgetState extends ConsumerState<TimeScreenWidget> {
onPressed({required String type}) {
if (type == "confirm") {
- ref.read(dateTimeStateProvider.notifier).setTime(
- "${hourController.text}:${minuteController.text} $selectedMeridien");
- context.flow<AppState>().update((state) => AppState.dateTime);
+ if (hourController.text.isNotEmpty && minuteController.text.isNotEmpty) {
+ String input =
+ '${hourController.text}:${minuteController.text} $selectedMeridien';
+ DateTime selectedeDatetime = DateFormat.jm().parse(input);
+
+ ref
+ .read(currentTimeProvider.notifier)
+ .setCurrentTime(selectedeDatetime);
+
+ // ref.read(dateTimeStateProvider.notifier).setTime(
+ // "${hourController.text}:${minuteController.text} $selectedMeridien");
+ context.flow<AppState>().update((state) => AppState.dateTime);
+ } else {
+ ScaffoldMessenger.of(context).showSnackBar(
+ const SnackBar(content: Text("Time can't be empty!")));
+ }
} else if (type == "cancel") {
context.flow<AppState>().update((state) => AppState.dateTime);
}
@@ -55,10 +69,9 @@ class TimeScreenWidgetState extends ConsumerState<TimeScreenWidget> {
@override
void initState() {
- String time = ref.read(dateTimeStateProvider).time;
- if (time == "hh:mm a") {
- time = DateFormat('hh:mm a').format(DateTime.now());
- }
+ DateTime currentTime = ref.read(currentTimeProvider);
+ String time = DateFormat('hh:mm a').format(currentTime);
+
List<String> split = time.split(":");
selectedTimeHour = int.parse(split[0]);
List<String> splitMeridian = split[1].split(" ");
@@ -388,6 +401,74 @@ class _TimeTextFieldState extends State<TimeTextField> {
return KeyEventResult.ignored;
}
+ void showKeyboard() {
+ var ctx = homeScaffoldKey.currentContext;
+ showModalBottomSheet(
+ elevation: 0.0,
+ backgroundColor: Colors.transparent,
+ barrierColor: Colors.transparent,
+ context: ctx!,
+ builder: (ctx) {
+ return Container(
+ height: 479,
+ width: 1080,
+ decoration: const BoxDecoration(
+ color: AGLDemoColors.resolutionBlueColor,
+ border: Border(
+ top: BorderSide(
+ color: Color(0xFF295EF7),
+ width: 1,
+ )),
+ ),
+ child: VirtualKeyboard(
+ height: 478,
+ textColor: AGLDemoColors.periwinkleColor,
+ fontSize: 40,
+ // [A-Z, 0-9]
+ type: VirtualKeyboardType.Numeric,
+ // Callback for key press event
+ onKeyPress: (key) {
+ _onKeyPress(key);
+ },
+ ),
+ );
+ },
+ );
+ }
+
+ _onKeyPress(VirtualKeyboardKey key) {
+ String text = controller.text;
+
+ if (key.keyType == VirtualKeyboardKeyType.String) {
+ if (key.text != ".") {
+ text = text + key.text!;
+ int value = int.parse(text);
+
+ if (widget.type == "hour") {
+ if (value > 11) {
+ text = "12";
+ }
+ } else if (widget.type == "minute") {
+ if (value > 58) {
+ text = "59";
+ }
+ }
+ }
+ } else if (key.keyType == VirtualKeyboardKeyType.Action) {
+ switch (key.action) {
+ case VirtualKeyboardKeyAction.Backspace:
+ if (text.isEmpty) return;
+ text = text.substring(0, text.length - 1);
+ break;
+ // case VirtualKeyboardKeyAction.Return:
+ // text = '$text\n';
+ // break;
+ default:
+ }
+ }
+ controller.text = text;
+ }
+
@override
Widget build(BuildContext context) {
return SizedBox(
@@ -397,6 +478,9 @@ class _TimeTextFieldState extends State<TimeTextField> {
return onKeyBoardEvent(event);
}),
child: TextField(
+ onTap: () {
+ showKeyboard();
+ },
style: const TextStyle(color: Colors.white, fontSize: 40),
decoration: InputDecoration(
contentPadding: const EdgeInsets.symmetric(vertical: 23),
diff --git a/lib/presentation/screens/settings/settings_screens/wired/wired_screen.dart b/lib/presentation/screens/settings/settings_screens/wired/wired_screen.dart
index 916b1b6..35225b8 100644
--- a/lib/presentation/screens/settings/settings_screens/wired/wired_screen.dart
+++ b/lib/presentation/screens/settings/settings_screens/wired/wired_screen.dart
@@ -1,4 +1,6 @@
+import 'package:flutter_ics_homescreen/core/utils/helpers.dart';
import 'package:flutter_ics_homescreen/export.dart';
+import 'package:get_ip_address/get_ip_address.dart';
class WiredPage extends ConsumerWidget {
const WiredPage({super.key});
@@ -6,71 +8,142 @@ class WiredPage extends ConsumerWidget {
static Page<void> page() => const MaterialPage<void>(child: WiredPage());
@override
Widget build(BuildContext context, WidgetRef ref) {
- return Scaffold(
- body: Column(
- children: [
- CommonTitle(
- title: 'Wired',
- hasBackButton: true,
- onPressed: () {
- context.flow<AppState>().update((state) => AppState.settings);
- },
+ return const Scaffold(body: WiredScreen());
+ }
+}
+
+class WiredScreen extends StatefulWidget {
+ const WiredScreen({super.key});
+
+ @override
+ State<WiredScreen> createState() => _WiredScreenState();
+}
+
+class _WiredScreenState extends State<WiredScreen> {
+ String deviceIP = "192.168.234.120";
+ @override
+ void initState() {
+ super.initState();
+ getIPAddress();
+ }
+
+ getIPAddress() async {
+ try {
+ /// Initialize Ip Address
+ var ipAddress = IpAddress(type: RequestType.text);
+
+ /// Get the IpAddress based on requestType.
+ dynamic data = await ipAddress.getIpAddress();
+ setState(() {
+ deviceIP = data.toString();
+ });
+ } on IpAddressException catch (exception) {
+ /// Handle the exception.
+ print(exception.message);
+ }
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return Column(
+ children: [
+ CommonTitle(
+ title: 'Wired',
+ hasBackButton: true,
+ onPressed: () {
+ context.flow<AppState>().update((state) => AppState.settings);
+ },
+ ),
+ Container(
+ margin: const EdgeInsets.symmetric(horizontal: 120, vertical: 40),
+ padding: const EdgeInsets.symmetric(vertical: 17, horizontal: 24),
+ height: 140,
+ alignment: Alignment.center,
+ decoration: BoxDecoration(
+ gradient: LinearGradient(
+ begin: Alignment.centerLeft,
+ end: Alignment.centerRight,
+ stops: const [
+ 0,
+ 0.01,
+ 0.8
+ ],
+ colors: <Color>[
+ Colors.white,
+ AGLDemoColors.neonBlueColor,
+ AGLDemoColors.neonBlueColor.withOpacity(0.15)
+ ]),
),
- Padding(
- padding: const EdgeInsets.symmetric(vertical: 50, horizontal: 80),
- child: Container(
- height: 130,
- decoration: const BoxDecoration(
- gradient: LinearGradient(
- begin: Alignment.centerLeft,
- end: Alignment.centerRight,
- stops: [
- 0,
- 0.01,
- 0.8
+ child: Row(
+ crossAxisAlignment: CrossAxisAlignment.center,
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ // const SizedBox(
+ // width: 20,
+ // ),
+ Expanded(
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.center,
+ crossAxisAlignment: CrossAxisAlignment.stretch,
+ children: [
+ const Text(
+ 'hernet_0090451v407b_cable',
+ style: TextStyle(color: Colors.white, fontSize: 40),
+ ),
+ Text(
+ 'connected, $deviceIP',
+ style:
+ const TextStyle(color: Colors.white, fontSize: 26),
+ ),
],
- colors: <Color>[
- Colors.white,
- Colors.blue,
- Color.fromARGB(16, 41, 98, 255)
- ]),
- ),
- child: ListTile(
- contentPadding:
- const EdgeInsets.symmetric(vertical: 41, horizontal: 24),
-
- title: const Text(
- 'hernet_0090451v407b_cable',
- style: TextStyle(color: Colors.white, fontSize: 40),
- ),
- subtitle: const Text(
- 'connected, 192.168.234.120',
- style: TextStyle(color: Colors.white, fontSize: 26),
- ),
- trailing: ElevatedButton(
- style: ElevatedButton.styleFrom(
- backgroundColor: const Color(0xFF1C2D92),
- side: const BorderSide(color: Color(0xFF285DF4), width: 2),
),
- child: const Padding(
- padding:
- EdgeInsets.symmetric(vertical: 15.0, horizontal: 0),
- child: Text(
-
- 'Configure',
- style: TextStyle(
- color: Color(0xFFC1D8FF),
- fontSize: 26,
+ ),
+ Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(4),
+ color: AGLDemoColors.buttonFillEnabledColor,
+ border: Border.all(color: AGLDemoColors.neonBlueColor),
+ boxShadow: [Helpers.boxDropShadowRegular]),
+ child: Material(
+ color: Colors.transparent,
+ child: InkWell(
+ onTap: () {},
+ borderRadius: BorderRadius.circular(4),
+ child: const Padding(
+ padding:
+ EdgeInsets.symmetric(vertical: 30, horizontal: 40),
+ child: Text(
+ "Configure",
+ style: TextStyle(
+ color: AGLDemoColors.periwinkleColor,
+ fontSize: 26),
+ ),
),
),
),
- onPressed: () {},
),
- ),
- ),
- ),
- ],
- ),
+ // ElevatedButton(
+ // style: ElevatedButton.styleFrom(
+ // backgroundColor: const Color(0xFF1C2D92),
+ // side:
+ // const BorderSide(color: Color(0xFF285DF4), width: 2),
+ // ),
+ // child: const Padding(
+ // padding:
+ // EdgeInsets.symmetric(vertical: 15.0, horizontal: 0),
+ // child: Text(
+ // 'Configure',
+ // style: TextStyle(
+ // color: Color(0xFFC1D8FF),
+ // fontSize: 26,
+ // ),
+ // ),
+ // ),
+ // onPressed: () {},
+ // ),
+ ]),
+ ),
+ ],
);
}
}