Showing
15 changed files
with
309 additions
and
27 deletions
frontend/.idea/frontend.iml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<module type="JAVA_MODULE" version="4"> | ||
| 3 | + <component name="NewModuleRootManager" inherit-compiler-output="true"> | ||
| 4 | + <exclude-output /> | ||
| 5 | + <content url="file://$MODULE_DIR$" /> | ||
| 6 | + <orderEntry type="inheritedJdk" /> | ||
| 7 | + <orderEntry type="sourceFolder" forTests="false" /> | ||
| 8 | + </component> | ||
| 9 | +</module> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
frontend/.idea/modules.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<project version="4"> | ||
| 3 | + <component name="ProjectModuleManager"> | ||
| 4 | + <modules> | ||
| 5 | + <module fileurl="file://$PROJECT_DIR$/.idea/frontend.iml" filepath="$PROJECT_DIR$/.idea/frontend.iml" /> | ||
| 6 | + </modules> | ||
| 7 | + </component> | ||
| 8 | +</project> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
frontend/.idea/vcs.xml
0 → 100644
frontend/.idea/workspace.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<project version="4"> | ||
| 3 | + <component name="ChangeListManager"> | ||
| 4 | + <list default="true" id="147dc7b8-1063-4e12-b6bb-adb3717b8080" name="Default Changelist" comment="" /> | ||
| 5 | + <option name="SHOW_DIALOG" value="false" /> | ||
| 6 | + <option name="HIGHLIGHT_CONFLICTS" value="true" /> | ||
| 7 | + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> | ||
| 8 | + <option name="LAST_RESOLUTION" value="IGNORE" /> | ||
| 9 | + </component> | ||
| 10 | + <component name="Git.Settings"> | ||
| 11 | + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> | ||
| 12 | + </component> | ||
| 13 | + <component name="ProjectId" id="1wtiCZt9s9osC3izQmO4Etd3c5k" /> | ||
| 14 | + <component name="ProjectViewState"> | ||
| 15 | + <option name="hideEmptyMiddlePackages" value="true" /> | ||
| 16 | + <option name="showLibraryContents" value="true" /> | ||
| 17 | + </component> | ||
| 18 | + <component name="PropertiesComponent"> | ||
| 19 | + <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" /> | ||
| 20 | + <property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> | ||
| 21 | + <property name="last_opened_file_path" value="$PROJECT_DIR$/flutter_application_1" /> | ||
| 22 | + <property name="project.structure.last.edited" value="Project" /> | ||
| 23 | + <property name="project.structure.proportion" value="0.0" /> | ||
| 24 | + <property name="project.structure.side.proportion" value="0.0" /> | ||
| 25 | + </component> | ||
| 26 | + <component name="SvnConfiguration"> | ||
| 27 | + <configuration /> | ||
| 28 | + </component> | ||
| 29 | + <component name="TaskManager"> | ||
| 30 | + <task active="true" id="Default" summary="Default task"> | ||
| 31 | + <changelist id="147dc7b8-1063-4e12-b6bb-adb3717b8080" name="Default Changelist" comment="" /> | ||
| 32 | + <created>1629284158268</created> | ||
| 33 | + <option name="number" value="Default" /> | ||
| 34 | + <option name="presentableId" value="Default" /> | ||
| 35 | + <updated>1629284158268</updated> | ||
| 36 | + </task> | ||
| 37 | + <servers /> | ||
| 38 | + </component> | ||
| 39 | + <component name="WindowStateProjectService"> | ||
| 40 | + <state x="740" y="278" key="FileChooserDialogImpl" timestamp="1629284197342"> | ||
| 41 | + <screen x="0" y="0" width="1920" height="1040" /> | ||
| 42 | + </state> | ||
| 43 | + <state x="740" y="278" key="FileChooserDialogImpl/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1629284197342" /> | ||
| 44 | + <state x="440" y="98" key="SettingsEditor" timestamp="1629284186082"> | ||
| 45 | + <screen x="0" y="0" width="1920" height="1040" /> | ||
| 46 | + </state> | ||
| 47 | + <state x="440" y="98" key="SettingsEditor/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1629284186082" /> | ||
| 48 | + </component> | ||
| 49 | +</project> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -15,6 +15,7 @@ | ... | @@ -15,6 +15,7 @@ |
| 15 | <application | 15 | <application |
| 16 | android:name="io.flutter.app.FlutterApplication" | 16 | android:name="io.flutter.app.FlutterApplication" |
| 17 | android:label="Smart_Medicine_Box" | 17 | android:label="Smart_Medicine_Box" |
| 18 | + android:requestLegacyExternalStorage="true" | ||
| 18 | android:icon="@mipmap/ic_launcher"> | 19 | android:icon="@mipmap/ic_launcher"> |
| 19 | <activity | 20 | <activity |
| 20 | android:name=".MainActivity" | 21 | android:name=".MainActivity" | ... | ... |
| ... | @@ -2,3 +2,4 @@ org.gradle.jvmargs=-Xmx1536M | ... | @@ -2,3 +2,4 @@ org.gradle.jvmargs=-Xmx1536M |
| 2 | android.useAndroidX=true | 2 | android.useAndroidX=true |
| 3 | android.enableJetifier=true | 3 | android.enableJetifier=true |
| 4 | android.enableR8=true | 4 | android.enableR8=true |
| 5 | +org.gradle.jvmargs=-Xmx4608m | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| 1 | import 'dart:convert'; | 1 | import 'dart:convert'; |
| 2 | +import 'package:Smart_Medicine_Box/src/screens/Register/DoctorRequest.dart'; | ||
| 2 | import 'package:flutter/material.dart'; | 3 | import 'package:flutter/material.dart'; |
| 3 | import 'package:flutter/services.dart'; | 4 | import 'package:flutter/services.dart'; |
| 4 | import 'package:http/http.dart' as http; | 5 | import 'package:http/http.dart' as http; |
| 5 | import 'package:flutter_dotenv/flutter_dotenv.dart'; | 6 | import 'package:flutter_dotenv/flutter_dotenv.dart'; |
| 6 | -import '../models/Bottle.dart'; | 7 | +import 'models/Bottle.dart'; |
| 7 | -import '../DashBoard.dart'; | 8 | +import 'DashBoard.dart'; |
| 8 | -import '../../utils/user_secure_stoarge.dart'; | 9 | +import '../utils/user_secure_stoarge.dart'; |
| 9 | 10 | ||
| 10 | class BottleList extends StatefulWidget { | 11 | class BottleList extends StatefulWidget { |
| 11 | BottleList({Key key}) : super(key: key); | 12 | BottleList({Key key}) : super(key: key); |
| ... | @@ -15,9 +16,12 @@ class BottleList extends StatefulWidget { | ... | @@ -15,9 +16,12 @@ class BottleList extends StatefulWidget { |
| 15 | } | 16 | } |
| 16 | 17 | ||
| 17 | class _BottleListState extends State<BottleList> { | 18 | class _BottleListState extends State<BottleList> { |
| 19 | + int newalarm = 0; | ||
| 20 | + | ||
| 18 | String valueText; | 21 | String valueText; |
| 19 | List<Bottle> _bottleList = new List<Bottle>(); | 22 | List<Bottle> _bottleList = new List<Bottle>(); |
| 20 | TextEditingController _textFieldController = TextEditingController(); | 23 | TextEditingController _textFieldController = TextEditingController(); |
| 24 | + | ||
| 21 | Future<String> getBottleList() async { | 25 | Future<String> getBottleList() async { |
| 22 | String hubid = await UserSecureStorage.getHubId(); | 26 | String hubid = await UserSecureStorage.getHubId(); |
| 23 | String usertoken = await UserSecureStorage.getUserToken(); | 27 | String usertoken = await UserSecureStorage.getUserToken(); |
| ... | @@ -90,7 +94,7 @@ class _BottleListState extends State<BottleList> { | ... | @@ -90,7 +94,7 @@ class _BottleListState extends State<BottleList> { |
| 90 | width: size.width, | 94 | width: size.width, |
| 91 | child: Center( | 95 | child: Center( |
| 92 | child: Text( | 96 | child: Text( |
| 93 | - '등록된 약병 리스트', | 97 | + 'BOTTLE LIST', |
| 94 | textScaleFactor: 1.0, | 98 | textScaleFactor: 1.0, |
| 95 | style: TextStyle( | 99 | style: TextStyle( |
| 96 | fontSize: 28, | 100 | fontSize: 28, |
| ... | @@ -133,13 +137,13 @@ class _BottleListState extends State<BottleList> { | ... | @@ -133,13 +137,13 @@ class _BottleListState extends State<BottleList> { |
| 133 | style: BorderStyle.solid), | 137 | style: BorderStyle.solid), |
| 134 | ), | 138 | ), |
| 135 | ), | 139 | ), |
| 136 | - height: 40, | 140 | + height: 30, |
| 137 | child: Row( | 141 | child: Row( |
| 138 | mainAxisAlignment: | 142 | mainAxisAlignment: |
| 139 | MainAxisAlignment.spaceBetween, | 143 | MainAxisAlignment.spaceBetween, |
| 140 | children: [ | 144 | children: [ |
| 141 | Container( | 145 | Container( |
| 142 | - height: 40, | 146 | + height: 30, |
| 143 | child: Center( | 147 | child: Center( |
| 144 | child: Text( | 148 | child: Text( |
| 145 | '${_bottleList[index].bottleId}', | 149 | '${_bottleList[index].bottleId}', |
| ... | @@ -151,35 +155,29 @@ class _BottleListState extends State<BottleList> { | ... | @@ -151,35 +155,29 @@ class _BottleListState extends State<BottleList> { |
| 151 | ), | 155 | ), |
| 152 | ), | 156 | ), |
| 153 | ), | 157 | ), |
| 154 | - Container( | ||
| 155 | - child: IconButton( | ||
| 156 | - alignment: Alignment(0.9, 0), | ||
| 157 | - icon: Icon( | ||
| 158 | - Icons.create_sharp, | ||
| 159 | - color: Colors.black, | ||
| 160 | - ), | ||
| 161 | - onPressed: () {}, | ||
| 162 | - ), | ||
| 163 | - ), | ||
| 164 | ], | 158 | ], |
| 165 | ), | 159 | ), |
| 166 | ), | 160 | ), |
| 167 | - SizedBox(height: 10), | 161 | + SizedBox(height: 5), |
| 168 | Container( | 162 | Container( |
| 169 | - height: 90, | 163 | + height: 70, |
| 170 | child: Icon( | 164 | child: Icon( |
| 171 | Icons.medical_services_outlined, | 165 | Icons.medical_services_outlined, |
| 172 | - size: 100, | 166 | + size: 70, |
| 173 | ), | 167 | ), |
| 174 | ) | 168 | ) |
| 175 | ], | 169 | ], |
| 176 | ), | 170 | ), |
| 177 | ), | 171 | ), |
| 178 | onTap: () { | 172 | onTap: () { |
| 179 | - UserSecureStorage.setBottleId( | 173 | + if (_bottleList[index].medicineId == null) { |
| 180 | - _bottleList[index].bottleId.toString()); | 174 | + //약병에 약이 없는 경우 |
| 181 | - UserSecureStorage.setMedicineId( | 175 | + } else { |
| 182 | - _bottleList[index].medicineId.toString()); | 176 | + UserSecureStorage.setBottleId( |
| 177 | + _bottleList[index].bottleId.toString()); | ||
| 178 | + UserSecureStorage.setMedicineId( | ||
| 179 | + _bottleList[index].medicineId.toString()); | ||
| 180 | + } | ||
| 183 | Navigator.push( | 181 | Navigator.push( |
| 184 | context, | 182 | context, |
| 185 | MaterialPageRoute( | 183 | MaterialPageRoute( |
| ... | @@ -199,6 +197,53 @@ class _BottleListState extends State<BottleList> { | ... | @@ -199,6 +197,53 @@ class _BottleListState extends State<BottleList> { |
| 199 | } | 197 | } |
| 200 | }, | 198 | }, |
| 201 | ), | 199 | ), |
| 200 | + floatingActionButton: Container( | ||
| 201 | + child: FittedBox( | ||
| 202 | + child: Stack( | ||
| 203 | + alignment: Alignment(1.4, -1.5), | ||
| 204 | + children: [ | ||
| 205 | + FloatingActionButton( | ||
| 206 | + onPressed: () { | ||
| 207 | + //여기 누르면 넘어가는데 아마 숫자가 있을 경우만 넘어가도록 하기 | ||
| 208 | + Navigator.push( | ||
| 209 | + context, | ||
| 210 | + MaterialPageRoute( | ||
| 211 | + builder: (BuildContext context) => DoctorRequest(), | ||
| 212 | + ), | ||
| 213 | + ); | ||
| 214 | + }, | ||
| 215 | + child: Icon(Icons.email_outlined), | ||
| 216 | + backgroundColor: Colors.blue, | ||
| 217 | + ), | ||
| 218 | + newalarm != 0 | ||
| 219 | + ? Container( | ||
| 220 | + // This is your Badge | ||
| 221 | + child: Center( | ||
| 222 | + // child 문을 ? : 를 이용하여 구분하자 | ||
| 223 | + child: Text(newalarm.toString(), | ||
| 224 | + style: TextStyle(color: Colors.white)), | ||
| 225 | + ), | ||
| 226 | + padding: EdgeInsets.all(8), | ||
| 227 | + constraints: | ||
| 228 | + BoxConstraints(minHeight: 32, minWidth: 32), | ||
| 229 | + decoration: BoxDecoration( | ||
| 230 | + // This controls the shadow | ||
| 231 | + boxShadow: [ | ||
| 232 | + BoxShadow( | ||
| 233 | + spreadRadius: 1, | ||
| 234 | + blurRadius: 5, | ||
| 235 | + color: Colors.black.withAlpha(50)) | ||
| 236 | + ], | ||
| 237 | + borderRadius: BorderRadius.circular(16), | ||
| 238 | + color: | ||
| 239 | + Colors.blue, // This would be color of the Badge | ||
| 240 | + ), | ||
| 241 | + ) | ||
| 242 | + : new Container() | ||
| 243 | + ], | ||
| 244 | + ), | ||
| 245 | + ), | ||
| 246 | + ), | ||
| 202 | ), | 247 | ), |
| 203 | onWillPop: () { | 248 | onWillPop: () { |
| 204 | SystemNavigator.pop(); | 249 | SystemNavigator.pop(); | ... | ... |
This diff is collapsed. Click to expand it.
File mode changed
This diff is collapsed. Click to expand it.
| 1 | +import 'dart:convert'; | ||
| 2 | +import 'package:flutter/cupertino.dart'; | ||
| 3 | +import 'package:flutter/material.dart'; | ||
| 4 | +import 'package:http/http.dart' as http; | ||
| 5 | +import 'package:flutter_dotenv/flutter_dotenv.dart'; | ||
| 6 | +import '../../utils/user_secure_stoarge.dart'; | ||
| 7 | + | ||
| 8 | +class DoctorRequest extends StatefulWidget { | ||
| 9 | + @override | ||
| 10 | + _DoctorRequestState createState() => _DoctorRequestState(); | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +class _DoctorRequestState extends State<DoctorRequest> { | ||
| 14 | + List<int> _doctorlist = new List<int>(); | ||
| 15 | + | ||
| 16 | + Future<String> getDoctorRequestList() async { | ||
| 17 | + String usertoken = await UserSecureStorage.getUserToken(); | ||
| 18 | + http.Response response = await http.get( | ||
| 19 | + Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'hub'), | ||
| 20 | + headers: {"authorization": usertoken}, | ||
| 21 | + ); | ||
| 22 | + List<dynamic> values = new List<dynamic>(); | ||
| 23 | + if (_doctorlist.length != 0) { | ||
| 24 | + _doctorlist.clear(); | ||
| 25 | + } | ||
| 26 | + if (response.statusCode == 200) { | ||
| 27 | + values = json.decode(response.body); | ||
| 28 | + for (int i = 0; i < values.length; i++) { | ||
| 29 | + _doctorlist.add(values[i]['hubId']); | ||
| 30 | + } | ||
| 31 | + return "get완료"; | ||
| 32 | + } else if (response.statusCode == 404) { | ||
| 33 | + return "Not Found"; | ||
| 34 | + } else { | ||
| 35 | + return "Error"; | ||
| 36 | + } | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + Widget build(BuildContext context) { | ||
| 40 | + final Size size = MediaQuery.of(context).size; | ||
| 41 | + return Scaffold( | ||
| 42 | + appBar: AppBar( | ||
| 43 | + backgroundColor: Colors.white, | ||
| 44 | + leading: new Icon(Icons.medical_services_rounded, | ||
| 45 | + color: Colors.black, size: 45.0), | ||
| 46 | + title: Text( | ||
| 47 | + 'Smart Medicine Box', | ||
| 48 | + style: TextStyle( | ||
| 49 | + color: Colors.black, | ||
| 50 | + fontSize: 23, | ||
| 51 | + fontFamily: 'Noto', | ||
| 52 | + fontWeight: FontWeight.bold), | ||
| 53 | + ), | ||
| 54 | + ), | ||
| 55 | + body: FutureBuilder( | ||
| 56 | + future: getDoctorRequestList(), | ||
| 57 | + builder: (BuildContext context, AsyncSnapshot snapshot) { | ||
| 58 | + if (snapshot.hasData == false) { | ||
| 59 | + return CircularProgressIndicator(); | ||
| 60 | + } else if (snapshot.hasError) { | ||
| 61 | + return Padding( | ||
| 62 | + padding: const EdgeInsets.all(8.0), | ||
| 63 | + child: Text( | ||
| 64 | + 'Error: ${snapshot.error}', | ||
| 65 | + style: TextStyle(fontSize: 15), | ||
| 66 | + ), | ||
| 67 | + ); | ||
| 68 | + } else { | ||
| 69 | + return Container( | ||
| 70 | + height: size.height, | ||
| 71 | + child: Column( | ||
| 72 | + mainAxisAlignment: MainAxisAlignment.center, | ||
| 73 | + children: <Widget>[ | ||
| 74 | + Container( | ||
| 75 | + height: size.height * 0.1, | ||
| 76 | + width: size.width, | ||
| 77 | + child: Center( | ||
| 78 | + child: Text( | ||
| 79 | + '담당의 등록 요청', | ||
| 80 | + textScaleFactor: 1.0, | ||
| 81 | + style: TextStyle( | ||
| 82 | + fontSize: 24, | ||
| 83 | + fontFamily: 'Noto', | ||
| 84 | + fontWeight: FontWeight.bold), | ||
| 85 | + ), | ||
| 86 | + ), | ||
| 87 | + decoration: | ||
| 88 | + BoxDecoration(border: Border.all(), color: Colors.blue), | ||
| 89 | + ), | ||
| 90 | + SizedBox(height: 30), | ||
| 91 | + Expanded( | ||
| 92 | + child: ListView.separated( | ||
| 93 | + padding: const EdgeInsets.all(30), | ||
| 94 | + itemCount: _doctorlist.length, | ||
| 95 | + itemBuilder: (BuildContext context, int index) { | ||
| 96 | + return Container( | ||
| 97 | + padding: EdgeInsets.all(8.0), | ||
| 98 | + decoration: BoxDecoration( | ||
| 99 | + border: Border.all(), | ||
| 100 | + borderRadius: | ||
| 101 | + BorderRadius.all(Radius.circular(25.0)), | ||
| 102 | + ), | ||
| 103 | + child: ListTile( | ||
| 104 | + title: Text( | ||
| 105 | + 'DoctorID: ' + '${_doctorlist[index]}', | ||
| 106 | + style: TextStyle( | ||
| 107 | + color: Colors.black, | ||
| 108 | + fontSize: 20, | ||
| 109 | + fontFamily: 'Noto', | ||
| 110 | + fontWeight: FontWeight.bold), | ||
| 111 | + ), | ||
| 112 | + trailing: Icon(Icons.check), | ||
| 113 | + onTap: () async { | ||
| 114 | + await showDialog( | ||
| 115 | + context: context, | ||
| 116 | + builder: (BuildContext context) { | ||
| 117 | + return AlertDialog( | ||
| 118 | + title: new Text('담당의 등록'), | ||
| 119 | + content: new Text('담당의 등록이 완료 되었습니다.'), | ||
| 120 | + actions: <Widget>[ | ||
| 121 | + new FlatButton( | ||
| 122 | + child: new Text('Close'), | ||
| 123 | + onPressed: () { | ||
| 124 | + Navigator.of(context).pop(); | ||
| 125 | + }, | ||
| 126 | + ), | ||
| 127 | + ], | ||
| 128 | + ); | ||
| 129 | + }, | ||
| 130 | + ); | ||
| 131 | + Navigator.of(context).pop(); | ||
| 132 | + }, | ||
| 133 | + ), | ||
| 134 | + ); | ||
| 135 | + }, | ||
| 136 | + separatorBuilder: (BuildContext contetx, int index) => | ||
| 137 | + const Divider(), | ||
| 138 | + ), | ||
| 139 | + ) | ||
| 140 | + ], | ||
| 141 | + ), | ||
| 142 | + ); | ||
| 143 | + } | ||
| 144 | + }, | ||
| 145 | + ), | ||
| 146 | + ); | ||
| 147 | + } | ||
| 148 | +} |
This diff is collapsed. Click to expand it.
| 1 | -import 'package:Smart_Medicine_Box/src/screens/DashBoard.dart'; | ||
| 2 | -import 'package:Smart_Medicine_Box/src/screens/Register/BottleList.dart'; | ||
| 3 | import 'package:flutter/cupertino.dart'; | 1 | import 'package:flutter/cupertino.dart'; |
| 4 | import 'dart:convert'; | 2 | import 'dart:convert'; |
| 5 | import 'package:flutter/material.dart'; | 3 | import 'package:flutter/material.dart'; |
| ... | @@ -7,6 +5,7 @@ import 'package:http/http.dart' as http; | ... | @@ -7,6 +5,7 @@ import 'package:http/http.dart' as http; |
| 7 | import 'package:flutter_dotenv/flutter_dotenv.dart'; | 5 | import 'package:flutter_dotenv/flutter_dotenv.dart'; |
| 8 | 6 | ||
| 9 | import 'SearchMedicine.dart'; | 7 | import 'SearchMedicine.dart'; |
| 8 | +import '../BottleList.dart'; | ||
| 10 | import '../../utils/user_secure_stoarge.dart'; | 9 | import '../../utils/user_secure_stoarge.dart'; |
| 11 | 10 | ||
| 12 | class RegisterBottle extends StatefulWidget { | 11 | class RegisterBottle extends StatefulWidget { |
| ... | @@ -139,7 +138,6 @@ class _RegisterBottleState extends State<RegisterBottle> { | ... | @@ -139,7 +138,6 @@ class _RegisterBottleState extends State<RegisterBottle> { |
| 139 | ); | 138 | ); |
| 140 | } else if (saveMessage == "등록 완료" && | 139 | } else if (saveMessage == "등록 완료" && |
| 141 | widget.modify_bottle == true) { | 140 | widget.modify_bottle == true) { |
| 142 | - print('asdg'); | ||
| 143 | await showDialog( | 141 | await showDialog( |
| 144 | context: context, | 142 | context: context, |
| 145 | builder: (BuildContext context) { | 143 | builder: (BuildContext context) { | ... | ... |
| ... | @@ -8,6 +8,13 @@ packages: | ... | @@ -8,6 +8,13 @@ packages: |
| 8 | url: "https://pub.dartlang.org" | 8 | url: "https://pub.dartlang.org" |
| 9 | source: hosted | 9 | source: hosted |
| 10 | version: "2.5.0-nullsafety.1" | 10 | version: "2.5.0-nullsafety.1" |
| 11 | + badges: | ||
| 12 | + dependency: "direct main" | ||
| 13 | + description: | ||
| 14 | + name: badges | ||
| 15 | + url: "https://pub.dartlang.org" | ||
| 16 | + source: hosted | ||
| 17 | + version: "1.2.0" | ||
| 11 | boolean_selector: | 18 | boolean_selector: |
| 12 | dependency: transitive | 19 | dependency: transitive |
| 13 | description: | 20 | description: |
| ... | @@ -125,6 +132,13 @@ packages: | ... | @@ -125,6 +132,13 @@ packages: |
| 125 | url: "https://pub.dartlang.org" | 132 | url: "https://pub.dartlang.org" |
| 126 | source: hosted | 133 | source: hosted |
| 127 | version: "1.0.1" | 134 | version: "1.0.1" |
| 135 | + flutter_picker: | ||
| 136 | + dependency: "direct main" | ||
| 137 | + description: | ||
| 138 | + name: flutter_picker | ||
| 139 | + url: "https://pub.dartlang.org" | ||
| 140 | + source: hosted | ||
| 141 | + version: "1.1.5" | ||
| 128 | flutter_screenutil: | 142 | flutter_screenutil: |
| 129 | dependency: "direct main" | 143 | dependency: "direct main" |
| 130 | description: | 144 | description: | ... | ... |
| ... | @@ -38,9 +38,12 @@ dependencies: | ... | @@ -38,9 +38,12 @@ dependencies: |
| 38 | http: ^0.12.0+4 | 38 | http: ^0.12.0+4 |
| 39 | flutter_dotenv: ^2.1.0 | 39 | flutter_dotenv: ^2.1.0 |
| 40 | numberpicker: ^1.3.0 | 40 | numberpicker: ^1.3.0 |
| 41 | - flutter_secure_storage: ^3.3.5 | 41 | + flutter_secure_storage: ^3.3.5 |
| 42 | sqflite: ^1.1.6 | 42 | sqflite: ^1.1.6 |
| 43 | path_provider: ^1.2.0 | 43 | path_provider: ^1.2.0 |
| 44 | + badges: ^1.1.1 | ||
| 45 | + flutter_picker: ^1.1.5 | ||
| 46 | + | ||
| 44 | 47 | ||
| 45 | dev_dependencies: | 48 | dev_dependencies: |
| 46 | flutter_test: | 49 | flutter_test: | ... | ... |
-
Please register or login to post a comment