From 3b0eed3e1f4768ac65e9b0c2ff784c79b494654c Mon Sep 17 00:00:00 2001 From: Dwikyyy Date: Thu, 30 Jul 2026 12:53:21 +0700 Subject: [PATCH] Upload files to "Source Code Mobile" --- Source Code Mobile/history_card.dart | 15 +++++++++++ Source Code Mobile/notification_card.dart | 23 ++++++++++++++++ Source Code Mobile/sensor_card.dart | 32 +++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 Source Code Mobile/history_card.dart create mode 100644 Source Code Mobile/notification_card.dart create mode 100644 Source Code Mobile/sensor_card.dart diff --git a/Source Code Mobile/history_card.dart b/Source Code Mobile/history_card.dart new file mode 100644 index 0000000..cb826ba --- /dev/null +++ b/Source Code Mobile/history_card.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class HistoryCard extends StatelessWidget { + final String title; + final String subtitle; + + const HistoryCard({super.key, required this.title, required this.subtitle}); + + @override + Widget build(BuildContext context) { + return Card( + child: ListTile(title: Text(title), subtitle: Text(subtitle)), + ); + } +} diff --git a/Source Code Mobile/notification_card.dart b/Source Code Mobile/notification_card.dart new file mode 100644 index 0000000..58d3abf --- /dev/null +++ b/Source Code Mobile/notification_card.dart @@ -0,0 +1,23 @@ +import 'package:flutter/material.dart'; + +class NotificationCard extends StatelessWidget { + final String title; + final String message; + + const NotificationCard({ + super.key, + required this.title, + required this.message, + }); + + @override + Widget build(BuildContext context) { + return Card( + child: ListTile( + leading: const Icon(Icons.notifications), + title: Text(title), + subtitle: Text(message), + ), + ); + } +} diff --git a/Source Code Mobile/sensor_card.dart b/Source Code Mobile/sensor_card.dart new file mode 100644 index 0000000..8871daa --- /dev/null +++ b/Source Code Mobile/sensor_card.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; + +class SensorCard extends StatelessWidget { + final String title; + final String value; + final String status; + + const SensorCard({ + super.key, + required this.title, + required this.value, + required this.status, + }); + + @override + Widget build(BuildContext context) { + return Card( + elevation: 3, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + children: [ + Text(title, style: const TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(height: 10), + Text(value, style: const TextStyle(fontSize: 26)), + Text(status), + ], + ), + ), + ); + } +}