diff --git a/lib/main.dart b/lib/main.dart index 3d03aae..6b583c6 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,3 +1,8 @@ +// Name: Nzeamalu David C. +// Mobile App Development +// tag: 08 + + import 'package:flutter/material.dart'; void main() { @@ -24,7 +29,7 @@ class HomeScreen extends StatefulWidget { class _HomeScreenState extends State { //attributes - List inputs = ['First Item']; + List inputs = ['List of Items']; final TextEditingController _controller = TextEditingController(); //method @@ -34,10 +39,20 @@ class _HomeScreenState extends State { } void addInput() { + String NewInpute = _controller.text.trim(); + if (NewInpute.isNotEmpty && !inputs.contains(NewInpute)){ setState(() { - inputs.add(_controller.text); + inputs.add(NewInpute); _controller.clear(); }); + } + } + + void resetInputs(){ + setState(() { + inputs.clear(); + inputs.add('First Item'); + }); } @override @@ -56,10 +71,22 @@ class _HomeScreenState extends State { SizedBox( height: 5, ), + + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ ElevatedButton(onPressed: addInput, child: Text('Submit')), SizedBox( height: 10, ), + + ElevatedButton(onPressed: resetInputs, child: Text('Reset')), + SizedBox( + height: 10, + ), + ], + ), + Expanded( child: ListView.builder( itemCount: inputs.length, @@ -73,3 +100,11 @@ class _HomeScreenState extends State { )); } } + +/* IN THIS MODIFIED VERSION OF THIS CODE: + 1. I added resetInputs() method to clear all the list. + 2. I added a new ElevatedButton for resetting the list of Items. This button calls the 'ResetInputs() method when pressed + 3. Finally i Modified the addInput() method to trim the input string and check if it's not empty (isNotEmpty) + and if it's not already in the list (!inputs.contains(newInput)). If these conditions are met, + the new message is added to the list. Otherwise, it will just be ignored. +*/ diff --git a/pubspec.lock b/pubspec.lock index 5c3fd01..2e1ecc8 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -67,6 +67,30 @@ packages: description: flutter source: sdk version: "0.0.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + url: "https://pub.dev" + source: hosted + version: "10.0.0" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + url: "https://pub.dev" + source: hosted + version: "2.0.1" lints: dependency: transitive description: @@ -79,34 +103,34 @@ packages: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.11.0" path: dependency: transitive description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" sky_engine: dependency: transitive description: flutter @@ -168,13 +192,13 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" - web: + vm_service: dependency: transitive description: - name: web - sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 + name: vm_service + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 url: "https://pub.dev" source: hosted - version: "0.3.0" + version: "13.0.0" sdks: dart: ">=3.2.3 <4.0.0"