Showing
17 changed files
with
239 additions
and
314 deletions
| ... | @@ -5,6 +5,7 @@ import 'package:flutter_dotenv/flutter_dotenv.dart'; | ... | @@ -5,6 +5,7 @@ import 'package:flutter_dotenv/flutter_dotenv.dart'; |
| 5 | 5 | ||
| 6 | Future main() async { | 6 | Future main() async { |
| 7 | await DotEnv().load('.env'); | 7 | await DotEnv().load('.env'); |
| 8 | + | ||
| 8 | runApp(MyApp()); | 9 | runApp(MyApp()); |
| 9 | } | 10 | } |
| 10 | 11 | ... | ... |
| ... | @@ -10,6 +10,7 @@ import 'models/Medicine.dart'; | ... | @@ -10,6 +10,7 @@ import 'models/Medicine.dart'; |
| 10 | import 'package:Smart_Medicine_Box/src/screens/SettingPage.dart'; | 10 | import 'package:Smart_Medicine_Box/src/screens/SettingPage.dart'; |
| 11 | import 'Register/BottleList.dart'; | 11 | import 'Register/BottleList.dart'; |
| 12 | import 'Register/SearchMedicine.dart'; | 12 | import 'Register/SearchMedicine.dart'; |
| 13 | +import 'package:intl/date_symbol_data_local.dart'; | ||
| 13 | 14 | ||
| 14 | class DashBoard extends StatefulWidget { | 15 | class DashBoard extends StatefulWidget { |
| 15 | int pageNumber; | 16 | int pageNumber; |
| ... | @@ -34,7 +35,6 @@ class _DashBoardState extends State<DashBoard> { | ... | @@ -34,7 +35,6 @@ class _DashBoardState extends State<DashBoard> { |
| 34 | Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'bottle/hub/' + hubid), | 35 | Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'bottle/hub/' + hubid), |
| 35 | headers: {"authorization": usertoken}, | 36 | headers: {"authorization": usertoken}, |
| 36 | ); | 37 | ); |
| 37 | - print(response.body); | ||
| 38 | if (_bottleList.length != 0) { | 38 | if (_bottleList.length != 0) { |
| 39 | _bottleList.clear(); | 39 | _bottleList.clear(); |
| 40 | } | 40 | } |
| ... | @@ -83,7 +83,13 @@ class _DashBoardState extends State<DashBoard> { | ... | @@ -83,7 +83,13 @@ class _DashBoardState extends State<DashBoard> { |
| 83 | Icons.settings, | 83 | Icons.settings, |
| 84 | color: Colors.black, | 84 | color: Colors.black, |
| 85 | ), | 85 | ), |
| 86 | - onPressed: () {}, | 86 | + onPressed: () { |
| 87 | + Navigator.push( | ||
| 88 | + context, | ||
| 89 | + MaterialPageRoute( | ||
| 90 | + builder: (BuildContext context) => SettingPage(), | ||
| 91 | + )); | ||
| 92 | + }, | ||
| 87 | ) | 93 | ) |
| 88 | ], | 94 | ], |
| 89 | ), | 95 | ), |
| ... | @@ -96,18 +102,6 @@ class _DashBoardState extends State<DashBoard> { | ... | @@ -96,18 +102,6 @@ class _DashBoardState extends State<DashBoard> { |
| 96 | color: Colors.blue, | 102 | color: Colors.blue, |
| 97 | ), | 103 | ), |
| 98 | ), | 104 | ), |
| 99 | - ListTile( | ||
| 100 | - title: Text('Test 1'), | ||
| 101 | - onTap: () {}, | ||
| 102 | - ), | ||
| 103 | - ListTile( | ||
| 104 | - title: Text('Test 2'), | ||
| 105 | - onTap: () {}, | ||
| 106 | - ), | ||
| 107 | - ListTile( | ||
| 108 | - title: Text('Test 3'), | ||
| 109 | - onTap: () {}, | ||
| 110 | - ), | ||
| 111 | ], | 105 | ], |
| 112 | ), | 106 | ), |
| 113 | ), | 107 | ), |
| ... | @@ -167,7 +161,6 @@ Widget mainpage(BuildContext context) { | ... | @@ -167,7 +161,6 @@ Widget mainpage(BuildContext context) { |
| 167 | Future<Medicine> _getmedicine() async { | 161 | Future<Medicine> _getmedicine() async { |
| 168 | String usertoken = await UserSecureStorage.getUserToken(); | 162 | String usertoken = await UserSecureStorage.getUserToken(); |
| 169 | String medicineid = await UserSecureStorage.getMedicineId(); | 163 | String medicineid = await UserSecureStorage.getMedicineId(); |
| 170 | - print(medicineid); | ||
| 171 | 164 | ||
| 172 | http.Response medicineresponse = await http.get( | 165 | http.Response medicineresponse = await http.get( |
| 173 | Uri.encodeFull( | 166 | Uri.encodeFull( |
| ... | @@ -750,7 +743,7 @@ Widget outerInformationpage(BuildContext context) { | ... | @@ -750,7 +743,7 @@ Widget outerInformationpage(BuildContext context) { |
| 750 | 743 | ||
| 751 | if (response.statusCode == 200) { | 744 | if (response.statusCode == 200) { |
| 752 | Map<String, dynamic> jsonData = jsonDecode(response.body); | 745 | Map<String, dynamic> jsonData = jsonDecode(response.body); |
| 753 | - print(jsonData); | 746 | + |
| 754 | _bottleinformation = Bottle.fromJson(jsonData); | 747 | _bottleinformation = Bottle.fromJson(jsonData); |
| 755 | } | 748 | } |
| 756 | return _bottleinformation; | 749 | return _bottleinformation; |
| ... | @@ -773,8 +766,6 @@ Widget outerInformationpage(BuildContext context) { | ... | @@ -773,8 +766,6 @@ Widget outerInformationpage(BuildContext context) { |
| 773 | ), | 766 | ), |
| 774 | ); | 767 | ); |
| 775 | } else { | 768 | } else { |
| 776 | - print(123412); | ||
| 777 | - print(snapshot.data.dosage); | ||
| 778 | return Container( | 769 | return Container( |
| 779 | height: size.height * 0.9, | 770 | height: size.height * 0.9, |
| 780 | margin: EdgeInsets.fromLTRB(0, 30, 0, 0), | 771 | margin: EdgeInsets.fromLTRB(0, 30, 0, 0), |
| ... | @@ -877,67 +868,6 @@ Widget outerInformationpage(BuildContext context) { | ... | @@ -877,67 +868,6 @@ Widget outerInformationpage(BuildContext context) { |
| 877 | ], | 868 | ], |
| 878 | ), | 869 | ), |
| 879 | ), | 870 | ), |
| 880 | - Container( | ||
| 881 | - margin: EdgeInsets.fromLTRB(0, 0, 0, 0), | ||
| 882 | - height: size.height * 0.20, | ||
| 883 | - width: size.width, | ||
| 884 | - child: Column( | ||
| 885 | - children: <Widget>[ | ||
| 886 | - Flexible( | ||
| 887 | - child: Column( | ||
| 888 | - mainAxisAlignment: MainAxisAlignment.center, | ||
| 889 | - children: <Widget>[ | ||
| 890 | - Container( | ||
| 891 | - padding: EdgeInsets.fromLTRB(5, 5, 5, 0), | ||
| 892 | - width: size.width * 0.9, | ||
| 893 | - height: size.height * 0.18, | ||
| 894 | - decoration: BoxDecoration( | ||
| 895 | - color: Color(0xff8E97FD), | ||
| 896 | - borderRadius: BorderRadius.circular(10.0), | ||
| 897 | - ), | ||
| 898 | - child: Column( | ||
| 899 | - children: [ | ||
| 900 | - Container( | ||
| 901 | - width: size.width, | ||
| 902 | - height: size.height * 0.05, | ||
| 903 | - child: Center( | ||
| 904 | - child: Text( | ||
| 905 | - '약 복용 시간', | ||
| 906 | - textAlign: TextAlign.center, | ||
| 907 | - textScaleFactor: 1.0, | ||
| 908 | - style: TextStyle( | ||
| 909 | - color: Colors.white, | ||
| 910 | - fontSize: 28, | ||
| 911 | - fontFamily: 'NotoSansKR', | ||
| 912 | - fontWeight: FontWeight.w800), | ||
| 913 | - ), | ||
| 914 | - ), | ||
| 915 | - ), | ||
| 916 | - Container( | ||
| 917 | - width: size.width, | ||
| 918 | - height: size.height * 0.12, | ||
| 919 | - child: Center( | ||
| 920 | - child: Text( | ||
| 921 | - '15:57', | ||
| 922 | - textAlign: TextAlign.center, | ||
| 923 | - textScaleFactor: 1.0, | ||
| 924 | - style: TextStyle( | ||
| 925 | - color: Colors.white, | ||
| 926 | - fontSize: 70, | ||
| 927 | - fontFamily: 'NotoSansKR', | ||
| 928 | - fontWeight: FontWeight.w800), | ||
| 929 | - ), | ||
| 930 | - ), | ||
| 931 | - ), | ||
| 932 | - ], | ||
| 933 | - ), | ||
| 934 | - ), | ||
| 935 | - ], | ||
| 936 | - ), | ||
| 937 | - ), | ||
| 938 | - ], | ||
| 939 | - ), | ||
| 940 | - ), | ||
| 941 | ], | 871 | ], |
| 942 | ), | 872 | ), |
| 943 | ); | 873 | ); | ... | ... |
| ... | @@ -50,7 +50,6 @@ class _BottleListState extends State<BottleList> { | ... | @@ -50,7 +50,6 @@ class _BottleListState extends State<BottleList> { |
| 50 | _userbottleList = await provider.getAllBottle(); | 50 | _userbottleList = await provider.getAllBottle(); |
| 51 | for (int i = 0; i < _userbottleList.length; i++) { | 51 | for (int i = 0; i < _userbottleList.length; i++) { |
| 52 | print(_userbottleList[i].bottleId); | 52 | print(_userbottleList[i].bottleId); |
| 53 | - print(12345678); | ||
| 54 | } | 53 | } |
| 55 | 54 | ||
| 56 | print(provider.getAllBottle()); | 55 | print(provider.getAllBottle()); |
| ... | @@ -172,9 +171,7 @@ class _BottleListState extends State<BottleList> { | ... | @@ -172,9 +171,7 @@ class _BottleListState extends State<BottleList> { |
| 172 | Icons.create_sharp, | 171 | Icons.create_sharp, |
| 173 | color: Colors.black, | 172 | color: Colors.black, |
| 174 | ), | 173 | ), |
| 175 | - onPressed: () { | 174 | + onPressed: () {}, |
| 176 | - print("asdfg"); | ||
| 177 | - }, | ||
| 178 | ), | 175 | ), |
| 179 | ), | 176 | ), |
| 180 | ], | 177 | ], | ... | ... |
| ... | @@ -22,8 +22,7 @@ class _DetailMedicineState extends State<DetailMedicine> { | ... | @@ -22,8 +22,7 @@ class _DetailMedicineState extends State<DetailMedicine> { |
| 22 | //약 등록 | 22 | //약 등록 |
| 23 | Future<String> patchMedcine() async { | 23 | Future<String> patchMedcine() async { |
| 24 | String usertoken = await UserSecureStorage.getUserToken(); | 24 | String usertoken = await UserSecureStorage.getUserToken(); |
| 25 | - print(widget.searchMedicine.medicineId); | 25 | + |
| 26 | - print(widget.bottleId); | ||
| 27 | http.Response response = await http.patch( | 26 | http.Response response = await http.patch( |
| 28 | Uri.encodeFull( | 27 | Uri.encodeFull( |
| 29 | DotEnv().env['SERVER_URL'] + 'bottle/' + widget.bottleId), | 28 | DotEnv().env['SERVER_URL'] + 'bottle/' + widget.bottleId), |
| ... | @@ -35,7 +34,7 @@ class _DetailMedicineState extends State<DetailMedicine> { | ... | @@ -35,7 +34,7 @@ class _DetailMedicineState extends State<DetailMedicine> { |
| 35 | 'medicineId': widget.searchMedicine.medicineId, | 34 | 'medicineId': widget.searchMedicine.medicineId, |
| 36 | 'dosage': medicineDosageController.text | 35 | 'dosage': medicineDosageController.text |
| 37 | })); | 36 | })); |
| 38 | - print(response.body); | 37 | + |
| 39 | if (response.statusCode == 200) { | 38 | if (response.statusCode == 200) { |
| 40 | String usertoken = await UserSecureStorage.setMedicineId( | 39 | String usertoken = await UserSecureStorage.setMedicineId( |
| 41 | widget.searchMedicine.medicineId.toString()); | 40 | widget.searchMedicine.medicineId.toString()); | ... | ... |
| ... | @@ -27,7 +27,7 @@ class _HubListState extends State<HubList> { | ... | @@ -27,7 +27,7 @@ class _HubListState extends State<HubList> { |
| 27 | DotEnv().env['SERVER_URL'] + 'bottle/hub/' + hubid.toString()), | 27 | DotEnv().env['SERVER_URL'] + 'bottle/hub/' + hubid.toString()), |
| 28 | headers: {"authorization": usertoken}, | 28 | headers: {"authorization": usertoken}, |
| 29 | ); | 29 | ); |
| 30 | - print(response.body); | 30 | + |
| 31 | if (_bottleList.length != 0) { | 31 | if (_bottleList.length != 0) { |
| 32 | _bottleList.clear(); | 32 | _bottleList.clear(); |
| 33 | } | 33 | } |
| ... | @@ -51,12 +51,24 @@ class _HubListState extends State<HubList> { | ... | @@ -51,12 +51,24 @@ class _HubListState extends State<HubList> { |
| 51 | Widget build(BuildContext context) { | 51 | Widget build(BuildContext context) { |
| 52 | final Size size = MediaQuery.of(context).size; | 52 | final Size size = MediaQuery.of(context).size; |
| 53 | return Scaffold( | 53 | return Scaffold( |
| 54 | + appBar: AppBar( | ||
| 55 | + backgroundColor: Colors.white, | ||
| 56 | + leading: new Icon(Icons.medical_services_rounded, | ||
| 57 | + color: Colors.black, size: 45.0), | ||
| 58 | + title: Text( | ||
| 59 | + 'Smart Medicine Box', | ||
| 60 | + style: TextStyle( | ||
| 61 | + color: Colors.black, | ||
| 62 | + fontSize: 23, | ||
| 63 | + fontFamily: 'Noto', | ||
| 64 | + fontWeight: FontWeight.bold), | ||
| 65 | + ), | ||
| 66 | + ), | ||
| 54 | body: Container( | 67 | body: Container( |
| 55 | height: size.height, | 68 | height: size.height, |
| 56 | child: Column( | 69 | child: Column( |
| 57 | mainAxisAlignment: MainAxisAlignment.center, | 70 | mainAxisAlignment: MainAxisAlignment.center, |
| 58 | children: <Widget>[ | 71 | children: <Widget>[ |
| 59 | - SizedBox(height: 70), | ||
| 60 | Container( | 72 | Container( |
| 61 | height: size.height * 0.1, | 73 | height: size.height * 0.1, |
| 62 | width: size.width, | 74 | width: size.width, |
| ... | @@ -80,7 +92,10 @@ class _HubListState extends State<HubList> { | ... | @@ -80,7 +92,10 @@ class _HubListState extends State<HubList> { |
| 80 | itemBuilder: (BuildContext context, int index) { | 92 | itemBuilder: (BuildContext context, int index) { |
| 81 | return Container( | 93 | return Container( |
| 82 | padding: EdgeInsets.all(8.0), | 94 | padding: EdgeInsets.all(8.0), |
| 83 | - decoration: BoxDecoration(border: Border.all()), | 95 | + decoration: BoxDecoration( |
| 96 | + border: Border.all(), | ||
| 97 | + borderRadius: BorderRadius.all(Radius.circular(25.0)), | ||
| 98 | + ), | ||
| 84 | child: ListTile( | 99 | child: ListTile( |
| 85 | title: Text( | 100 | title: Text( |
| 86 | 'HUB ID: ' + '${widget.hublist[index]}', | 101 | 'HUB ID: ' + '${widget.hublist[index]}', | ... | ... |
| ... | @@ -21,7 +21,7 @@ class _RegisterBottleState extends State<RegisterBottle> { | ... | @@ -21,7 +21,7 @@ class _RegisterBottleState extends State<RegisterBottle> { |
| 21 | Future<String> registerhub_Validate() async { | 21 | Future<String> registerhub_Validate() async { |
| 22 | String usertoken = await UserSecureStorage.getUserToken(); | 22 | String usertoken = await UserSecureStorage.getUserToken(); |
| 23 | String hubid = await UserSecureStorage.getHubId(); | 23 | String hubid = await UserSecureStorage.getHubId(); |
| 24 | - print(hubid); | 24 | + |
| 25 | http.Response bottleresponse = await http.post( | 25 | http.Response bottleresponse = await http.post( |
| 26 | Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'bottle'), | 26 | Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'bottle'), |
| 27 | headers: { | 27 | headers: { | ... | ... |
| ... | @@ -118,10 +118,8 @@ class _RegisterHubState extends State<RegisterHub> { | ... | @@ -118,10 +118,8 @@ class _RegisterHubState extends State<RegisterHub> { |
| 118 | child: RaisedButton( | 118 | child: RaisedButton( |
| 119 | onPressed: () async { | 119 | onPressed: () async { |
| 120 | String saveMessage = await registerhub_Validate(); | 120 | String saveMessage = await registerhub_Validate(); |
| 121 | - print(saveMessage); | ||
| 122 | if (saveMessage == "허브 등록 완료") { | 121 | if (saveMessage == "허브 등록 완료") { |
| 123 | UserSecureStorage.setHubId(medicineHubIDController.text); | 122 | UserSecureStorage.setHubId(medicineHubIDController.text); |
| 124 | - print(UserSecureStorage.getHubId()); | ||
| 125 | Navigator.push( | 123 | Navigator.push( |
| 126 | context, | 124 | context, |
| 127 | MaterialPageRoute( | 125 | MaterialPageRoute( | ... | ... |
| ... | @@ -28,7 +28,6 @@ class _SignInPageState extends State<SignInPage> { | ... | @@ -28,7 +28,6 @@ class _SignInPageState extends State<SignInPage> { |
| 28 | 28 | ||
| 29 | //Login 함수 | 29 | //Login 함수 |
| 30 | Future<String> login(String _email, String _password) async { | 30 | Future<String> login(String _email, String _password) async { |
| 31 | - print(Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'auth/login')); | ||
| 32 | http.Response response = await http.post( | 31 | http.Response response = await http.post( |
| 33 | Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'auth/login'), | 32 | Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'auth/login'), |
| 34 | headers: {"Content-Type": "application/json"}, | 33 | headers: {"Content-Type": "application/json"}, |
| ... | @@ -39,8 +38,6 @@ class _SignInPageState extends State<SignInPage> { | ... | @@ -39,8 +38,6 @@ class _SignInPageState extends State<SignInPage> { |
| 39 | }, | 38 | }, |
| 40 | ), | 39 | ), |
| 41 | ); | 40 | ); |
| 42 | - print(response.statusCode); | ||
| 43 | - | ||
| 44 | if (response.statusCode == 200) { | 41 | if (response.statusCode == 200) { |
| 45 | Map<String, dynamic> data = jsonDecode(response.body); | 42 | Map<String, dynamic> data = jsonDecode(response.body); |
| 46 | user = User.fromJson(data); | 43 | user = User.fromJson(data); |
| ... | @@ -56,15 +53,11 @@ class _SignInPageState extends State<SignInPage> { | ... | @@ -56,15 +53,11 @@ class _SignInPageState extends State<SignInPage> { |
| 56 | //Get Hub List 함수 | 53 | //Get Hub List 함수 |
| 57 | Future<String> getHubList() async { | 54 | Future<String> getHubList() async { |
| 58 | String usertoken = await UserSecureStorage.getUserToken(); | 55 | String usertoken = await UserSecureStorage.getUserToken(); |
| 59 | - print(usertoken); | ||
| 60 | http.Response response = await http.get( | 56 | http.Response response = await http.get( |
| 61 | Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'hub'), | 57 | Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'hub'), |
| 62 | headers: {"authorization": usertoken}, | 58 | headers: {"authorization": usertoken}, |
| 63 | ); | 59 | ); |
| 64 | - print(response.statusCode); | ||
| 65 | List<dynamic> values = new List<dynamic>(); | 60 | List<dynamic> values = new List<dynamic>(); |
| 66 | - print(1234125); | ||
| 67 | - print(values); | ||
| 68 | if (_hublist.length != 0) { | 61 | if (_hublist.length != 0) { |
| 69 | _hublist.clear(); | 62 | _hublist.clear(); |
| 70 | } | 63 | } |
| ... | @@ -117,6 +110,9 @@ class _SignInPageState extends State<SignInPage> { | ... | @@ -117,6 +110,9 @@ class _SignInPageState extends State<SignInPage> { |
| 117 | fontFamily: 'Noto', | 110 | fontFamily: 'Noto', |
| 118 | fontWeight: FontWeight.bold)), | 111 | fontWeight: FontWeight.bold)), |
| 119 | ), | 112 | ), |
| 113 | + SizedBox( | ||
| 114 | + height: 40, | ||
| 115 | + ), | ||
| 120 | Padding( | 116 | Padding( |
| 121 | padding: const EdgeInsets.fromLTRB(20, 0, 20, 0), | 117 | padding: const EdgeInsets.fromLTRB(20, 0, 20, 0), |
| 122 | child: new Column( | 118 | child: new Column( |
| ... | @@ -211,7 +207,6 @@ class _SignInPageState extends State<SignInPage> { | ... | @@ -211,7 +207,6 @@ class _SignInPageState extends State<SignInPage> { |
| 211 | String saveMessage = await login( | 207 | String saveMessage = await login( |
| 212 | emailController.text, | 208 | emailController.text, |
| 213 | passwordController.text); | 209 | passwordController.text); |
| 214 | - print(saveMessage); | ||
| 215 | if (emailController.text.isEmpty || | 210 | if (emailController.text.isEmpty || |
| 216 | passwordController.text.isEmpty) { | 211 | passwordController.text.isEmpty) { |
| 217 | showDialog( | 212 | showDialog( |
| ... | @@ -236,8 +231,6 @@ class _SignInPageState extends State<SignInPage> { | ... | @@ -236,8 +231,6 @@ class _SignInPageState extends State<SignInPage> { |
| 236 | UserSecureStorage.setUserToken( | 231 | UserSecureStorage.setUserToken( |
| 237 | user.token); | 232 | user.token); |
| 238 | var result = await getHubList(); | 233 | var result = await getHubList(); |
| 239 | - print("Result"); | ||
| 240 | - print(result); | ||
| 241 | if (result == "Not Found") { | 234 | if (result == "Not Found") { |
| 242 | Navigator.push( | 235 | Navigator.push( |
| 243 | context, | 236 | context, |
| ... | @@ -249,7 +242,6 @@ class _SignInPageState extends State<SignInPage> { | ... | @@ -249,7 +242,6 @@ class _SignInPageState extends State<SignInPage> { |
| 249 | } else if (result == "get완료") { | 242 | } else if (result == "get완료") { |
| 250 | UserSecureStorage.setUserId( | 243 | UserSecureStorage.setUserId( |
| 251 | user.userId); | 244 | user.userId); |
| 252 | - print('getgetget'); | ||
| 253 | Navigator.push( | 245 | Navigator.push( |
| 254 | context, | 246 | context, |
| 255 | MaterialPageRoute( | 247 | MaterialPageRoute( | ... | ... |
| ... | @@ -23,7 +23,6 @@ class _SignUpLocalState extends State<SignUpLocal> { | ... | @@ -23,7 +23,6 @@ class _SignUpLocalState extends State<SignUpLocal> { |
| 23 | bool passwordValidationVisible = true; | 23 | bool passwordValidationVisible = true; |
| 24 | 24 | ||
| 25 | Future<String> signup_Validate() async { | 25 | Future<String> signup_Validate() async { |
| 26 | - print(Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'auth/register')); | ||
| 27 | http.Response response = await http.post( | 26 | http.Response response = await http.post( |
| 28 | Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'auth/register'), | 27 | Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'auth/register'), |
| 29 | headers: {"Content-Type": "application/json"}, | 28 | headers: {"Content-Type": "application/json"}, |
| ... | @@ -35,8 +34,6 @@ class _SignUpLocalState extends State<SignUpLocal> { | ... | @@ -35,8 +34,6 @@ class _SignUpLocalState extends State<SignUpLocal> { |
| 35 | }, | 34 | }, |
| 36 | ), | 35 | ), |
| 37 | ); | 36 | ); |
| 38 | - | ||
| 39 | - print(response.statusCode); | ||
| 40 | if (response.statusCode == 201) { | 37 | if (response.statusCode == 201) { |
| 41 | return "정보 입력 완료"; | 38 | return "정보 입력 완료"; |
| 42 | } else { | 39 | } else { | ... | ... |
| 1 | +import 'package:Smart_Medicine_Box/src/screens/SettingPage/HubModifyList.dart'; | ||
| 1 | import 'package:flutter/material.dart'; | 2 | import 'package:flutter/material.dart'; |
| 2 | import 'package:Smart_Medicine_Box/src/screens/DashBoard.dart'; | 3 | import 'package:Smart_Medicine_Box/src/screens/DashBoard.dart'; |
| 3 | import 'package:Smart_Medicine_Box/src/screens/SettingPage/Alarm.dart'; | 4 | import 'package:Smart_Medicine_Box/src/screens/SettingPage/Alarm.dart'; |
| 4 | -import 'package:Smart_Medicine_Box/src/screens/SettingPage/Bluetooth.dart'; | ||
| 5 | import 'package:Smart_Medicine_Box/src/screens/SettingPage/DEVInformation.dart'; | 5 | import 'package:Smart_Medicine_Box/src/screens/SettingPage/DEVInformation.dart'; |
| 6 | import 'package:Smart_Medicine_Box/src/screens/SettingPage/InformationModify.dart'; | 6 | import 'package:Smart_Medicine_Box/src/screens/SettingPage/InformationModify.dart'; |
| 7 | +import '../screens/Register/HubList.dart'; | ||
| 7 | 8 | ||
| 8 | class SettingPage extends StatefulWidget { | 9 | class SettingPage extends StatefulWidget { |
| 9 | @override | 10 | @override |
| ... | @@ -112,7 +113,7 @@ class _SettingPageState extends State<SettingPage> { | ... | @@ -112,7 +113,7 @@ class _SettingPageState extends State<SettingPage> { |
| 112 | fontFamily: 'Noto', | 113 | fontFamily: 'Noto', |
| 113 | fontWeight: FontWeight.bold), | 114 | fontWeight: FontWeight.bold), |
| 114 | ), | 115 | ), |
| 115 | - color: Color(0xff8E97FD), | 116 | + color: Color(0xff0B1E33), |
| 116 | shape: RoundedRectangleBorder( | 117 | shape: RoundedRectangleBorder( |
| 117 | borderRadius: BorderRadius.circular(50)), | 118 | borderRadius: BorderRadius.circular(50)), |
| 118 | ), | 119 | ), |
| ... | @@ -128,11 +129,12 @@ class _SettingPageState extends State<SettingPage> { | ... | @@ -128,11 +129,12 @@ class _SettingPageState extends State<SettingPage> { |
| 128 | Navigator.push( | 129 | Navigator.push( |
| 129 | context, | 130 | context, |
| 130 | MaterialPageRoute( | 131 | MaterialPageRoute( |
| 131 | - builder: (BuildContext context) => Bluetooth(), | 132 | + builder: (BuildContext context) => |
| 133 | + HubModifyList(), | ||
| 132 | )); | 134 | )); |
| 133 | }, | 135 | }, |
| 134 | child: Text( | 136 | child: Text( |
| 135 | - '블루투스 설정', | 137 | + '허브 등록', |
| 136 | textScaleFactor: 1.0, | 138 | textScaleFactor: 1.0, |
| 137 | style: TextStyle( | 139 | style: TextStyle( |
| 138 | color: Colors.white, | 140 | color: Colors.white, |
| ... | @@ -140,7 +142,7 @@ class _SettingPageState extends State<SettingPage> { | ... | @@ -140,7 +142,7 @@ class _SettingPageState extends State<SettingPage> { |
| 140 | fontFamily: 'Noto', | 142 | fontFamily: 'Noto', |
| 141 | fontWeight: FontWeight.bold), | 143 | fontWeight: FontWeight.bold), |
| 142 | ), | 144 | ), |
| 143 | - color: Color(0xff8E97FD), | 145 | + color: Color(0xff0B1E33), |
| 144 | shape: RoundedRectangleBorder( | 146 | shape: RoundedRectangleBorder( |
| 145 | borderRadius: BorderRadius.circular(50)), | 147 | borderRadius: BorderRadius.circular(50)), |
| 146 | ), | 148 | ), |
| ... | @@ -169,7 +171,7 @@ class _SettingPageState extends State<SettingPage> { | ... | @@ -169,7 +171,7 @@ class _SettingPageState extends State<SettingPage> { |
| 169 | fontFamily: 'Noto', | 171 | fontFamily: 'Noto', |
| 170 | fontWeight: FontWeight.bold), | 172 | fontWeight: FontWeight.bold), |
| 171 | ), | 173 | ), |
| 172 | - color: Color(0xff8E97FD), | 174 | + color: Color(0xff0B1E33), |
| 173 | shape: RoundedRectangleBorder( | 175 | shape: RoundedRectangleBorder( |
| 174 | borderRadius: BorderRadius.circular(50)), | 176 | borderRadius: BorderRadius.circular(50)), |
| 175 | ), | 177 | ), |
| ... | @@ -198,7 +200,7 @@ class _SettingPageState extends State<SettingPage> { | ... | @@ -198,7 +200,7 @@ class _SettingPageState extends State<SettingPage> { |
| 198 | fontFamily: 'Noto', | 200 | fontFamily: 'Noto', |
| 199 | fontWeight: FontWeight.bold), | 201 | fontWeight: FontWeight.bold), |
| 200 | ), | 202 | ), |
| 201 | - color: Color(0xff8E97FD), | 203 | + color: Color(0xff0B1E33), |
| 202 | shape: RoundedRectangleBorder( | 204 | shape: RoundedRectangleBorder( |
| 203 | borderRadius: BorderRadius.circular(50)), | 205 | borderRadius: BorderRadius.circular(50)), |
| 204 | ), | 206 | ), |
| ... | @@ -228,11 +230,12 @@ class _SettingPageState extends State<SettingPage> { | ... | @@ -228,11 +230,12 @@ class _SettingPageState extends State<SettingPage> { |
| 228 | }) | 230 | }) |
| 229 | }, | 231 | }, |
| 230 | items: [ | 232 | items: [ |
| 231 | - BottomNavigationBarItem(icon: Icon(Icons.favorite), label: 'In'), | 233 | + BottomNavigationBarItem( |
| 234 | + icon: Icon(Icons.device_thermostat), label: 'In'), | ||
| 232 | BottomNavigationBarItem(icon: Icon(Icons.home), label: 'Home'), | 235 | BottomNavigationBarItem(icon: Icon(Icons.home), label: 'Home'), |
| 233 | BottomNavigationBarItem( | 236 | BottomNavigationBarItem( |
| 234 | label: 'Out', | 237 | label: 'Out', |
| 235 | - icon: Icon(Icons.favorite), | 238 | + icon: Icon(Icons.access_time), |
| 236 | ) | 239 | ) |
| 237 | ], | 240 | ], |
| 238 | ), | 241 | ), | ... | ... |
| 1 | -import 'package:flutter/material.dart'; | ||
| 2 | -import 'package:Smart_Medicine_Box/src/screens/SettingPage.dart'; | ||
| 3 | -import 'package:flutter_blue/flutter_blue.dart'; | ||
| 4 | - | ||
| 5 | -class Bluetooth extends StatefulWidget { | ||
| 6 | - @override | ||
| 7 | - _BluetoothState createState() => _BluetoothState(); | ||
| 8 | -} | ||
| 9 | - | ||
| 10 | -FlutterBlue flutterBlue; | ||
| 11 | - | ||
| 12 | -class _BluetoothState extends State<Bluetooth> { | ||
| 13 | - @override | ||
| 14 | - void initState() { | ||
| 15 | - super.initState(); | ||
| 16 | - flutterBlue = FlutterBlue.instance; | ||
| 17 | - } | ||
| 18 | - | ||
| 19 | - void _startscan() { | ||
| 20 | - flutterBlue.startScan(timeout: Duration(seconds: 12)); | ||
| 21 | - var subscription = flutterBlue.scanResults.listen((results) { | ||
| 22 | - // do something with scan results | ||
| 23 | - for (ScanResult r in results) { | ||
| 24 | - print( | ||
| 25 | - 'Device Name : ${r.device.name} // Device ID : ${r.device.id} // Device rssi: ${r.rssi}'); | ||
| 26 | - } | ||
| 27 | - }); | ||
| 28 | - } | ||
| 29 | - | ||
| 30 | - Widget build(BuildContext context) { | ||
| 31 | - Widget _buildItem(ScanResult s) { | ||
| 32 | - return ListTile( | ||
| 33 | - leading: Text(s.rssi.toString()), | ||
| 34 | - title: Text(s.device.name), | ||
| 35 | - subtitle: Text(s.device.id.id), | ||
| 36 | - onTap: () => | ||
| 37 | - Navigator.of(context).push(MaterialPageRoute(builder: (context) { | ||
| 38 | - return Device(device: s.device); | ||
| 39 | - })), | ||
| 40 | - ); | ||
| 41 | - } | ||
| 42 | - | ||
| 43 | - Widget _buildList(List<ScanResult> scanResults) { | ||
| 44 | - return Column( | ||
| 45 | - children: scanResults.map((v) => _buildItem(v)).toList(), | ||
| 46 | - ); | ||
| 47 | - } | ||
| 48 | - | ||
| 49 | - return MaterialApp( | ||
| 50 | - title: 'Welcome to Flutter', | ||
| 51 | - home: Scaffold( | ||
| 52 | - appBar: AppBar( | ||
| 53 | - iconTheme: IconThemeData(color: Colors.black), | ||
| 54 | - backgroundColor: Colors.white, | ||
| 55 | - title: Text( | ||
| 56 | - 'Smart Medicine Box', | ||
| 57 | - style: TextStyle( | ||
| 58 | - color: Colors.black, | ||
| 59 | - fontSize: 20, | ||
| 60 | - fontFamily: 'Noto', | ||
| 61 | - fontWeight: FontWeight.bold), | ||
| 62 | - ), | ||
| 63 | - actions: [ | ||
| 64 | - IconButton( | ||
| 65 | - icon: Icon( | ||
| 66 | - Icons.settings, | ||
| 67 | - color: Colors.black, | ||
| 68 | - ), | ||
| 69 | - onPressed: () { | ||
| 70 | - Navigator.push( | ||
| 71 | - context, | ||
| 72 | - MaterialPageRoute( | ||
| 73 | - builder: (BuildContext context) => SettingPage(), | ||
| 74 | - )); | ||
| 75 | - }, | ||
| 76 | - ) | ||
| 77 | - ], | ||
| 78 | - ), | ||
| 79 | - drawer: Drawer( | ||
| 80 | - child: ListView( | ||
| 81 | - children: [ | ||
| 82 | - DrawerHeader( | ||
| 83 | - child: Text('Drawer Header'), | ||
| 84 | - decoration: BoxDecoration( | ||
| 85 | - color: Colors.blue, | ||
| 86 | - ), | ||
| 87 | - ), | ||
| 88 | - ListTile( | ||
| 89 | - title: Text('Test 1'), | ||
| 90 | - onTap: () {}, | ||
| 91 | - ), | ||
| 92 | - ListTile( | ||
| 93 | - title: Text('Test 2'), | ||
| 94 | - onTap: () {}, | ||
| 95 | - ), | ||
| 96 | - ListTile( | ||
| 97 | - title: Text('Test 3'), | ||
| 98 | - onTap: () {}, | ||
| 99 | - ), | ||
| 100 | - ], | ||
| 101 | - ), | ||
| 102 | - ), | ||
| 103 | - body: SingleChildScrollView( | ||
| 104 | - child: StreamBuilder<List<ScanResult>>( | ||
| 105 | - stream: FlutterBlue.instance.scanResults, | ||
| 106 | - initialData: [], | ||
| 107 | - builder: (c, snapshot) { | ||
| 108 | - return _buildList(snapshot.data); | ||
| 109 | - }), | ||
| 110 | - ), | ||
| 111 | - floatingActionButton: StreamBuilder<bool>( | ||
| 112 | - stream: FlutterBlue.instance.isScanning, | ||
| 113 | - initialData: false, | ||
| 114 | - builder: (c, snapshot) { | ||
| 115 | - if (snapshot.data) { | ||
| 116 | - return FloatingActionButton( | ||
| 117 | - child: Icon(Icons.stop), | ||
| 118 | - onPressed: () => FlutterBlue.instance.stopScan(), | ||
| 119 | - backgroundColor: Colors.red, | ||
| 120 | - ); | ||
| 121 | - } else { | ||
| 122 | - return FloatingActionButton( | ||
| 123 | - child: Icon(Icons.search), | ||
| 124 | - onPressed: () => FlutterBlue.instance | ||
| 125 | - .startScan(timeout: Duration(seconds: 4))); | ||
| 126 | - } | ||
| 127 | - }, | ||
| 128 | - ), | ||
| 129 | - ), | ||
| 130 | - ); | ||
| 131 | - } | ||
| 132 | -} | ||
| 133 | - | ||
| 134 | -class Device extends StatefulWidget { | ||
| 135 | - Device({Key key, this.device}) : super(key: key); | ||
| 136 | - final BluetoothDevice device; | ||
| 137 | - @override | ||
| 138 | - _DeviceState createState() => _DeviceState(); | ||
| 139 | -} | ||
| 140 | - | ||
| 141 | -class _DeviceState extends State<Device> { | ||
| 142 | - void initState() { | ||
| 143 | - super.initState(); | ||
| 144 | - widget.device.connect(); | ||
| 145 | - } | ||
| 146 | - | ||
| 147 | - @override | ||
| 148 | - void dispose() { | ||
| 149 | - widget.device.disconnect(); | ||
| 150 | - super.dispose(); | ||
| 151 | - } | ||
| 152 | - | ||
| 153 | - Widget _buildIconButton() { | ||
| 154 | - return StreamBuilder<BluetoothDeviceState>( | ||
| 155 | - stream: widget.device.state, | ||
| 156 | - initialData: BluetoothDeviceState.connecting, | ||
| 157 | - builder: (c, snapshot) { | ||
| 158 | - if (snapshot.data != BluetoothDeviceState.connected) | ||
| 159 | - return Icon(Icons.warning); | ||
| 160 | - return IconButton( | ||
| 161 | - icon: Icon(Icons.bluetooth_searching), | ||
| 162 | - onPressed: () => widget.device.discoverServices(), | ||
| 163 | - ); | ||
| 164 | - }); | ||
| 165 | - } | ||
| 166 | - | ||
| 167 | - @override | ||
| 168 | - Widget build(BuildContext context) { | ||
| 169 | - return Scaffold( | ||
| 170 | - appBar: AppBar( | ||
| 171 | - title: Text(widget.device.name), | ||
| 172 | - actions: <Widget>[ | ||
| 173 | - _buildIconButton(), | ||
| 174 | - ], | ||
| 175 | - ), | ||
| 176 | - body: Text('hello'), | ||
| 177 | - ); | ||
| 178 | - } | ||
| 179 | -} |
| 1 | import 'package:flutter/material.dart'; | 1 | import 'package:flutter/material.dart'; |
| 2 | -import 'package:flutter/services.dart'; | 2 | + |
| 3 | -import '../../shared/colors.dart'; | 3 | +import 'package:Smart_Medicine_Box/src/screens/SettingPage.dart'; |
| 4 | -import 'package:flutter_screenutil/flutter_screenutil.dart'; | ||
| 5 | 4 | ||
| 6 | class DEVInformation extends StatefulWidget { | 5 | class DEVInformation extends StatefulWidget { |
| 7 | @override | 6 | @override |
| ... | @@ -10,16 +9,36 @@ class DEVInformation extends StatefulWidget { | ... | @@ -10,16 +9,36 @@ class DEVInformation extends StatefulWidget { |
| 10 | 9 | ||
| 11 | class _DEVInformationState extends State<DEVInformation> { | 10 | class _DEVInformationState extends State<DEVInformation> { |
| 12 | Widget build(BuildContext context) { | 11 | Widget build(BuildContext context) { |
| 13 | - return MaterialApp( | 12 | + final Size size = MediaQuery.of(context).size; |
| 14 | - title: 'Welcome to Flutter', | 13 | + return Scaffold( |
| 15 | - home: Scaffold( | ||
| 16 | appBar: AppBar( | 14 | appBar: AppBar( |
| 17 | - title: Text('Welcome to Flutter'), | 15 | + iconTheme: IconThemeData(color: Colors.black), |
| 16 | + backgroundColor: Colors.white, | ||
| 17 | + title: Text( | ||
| 18 | + 'Smart Medicine Box', | ||
| 19 | + style: TextStyle( | ||
| 20 | + color: Colors.black, | ||
| 21 | + fontSize: 20, | ||
| 22 | + fontFamily: 'Noto', | ||
| 23 | + fontWeight: FontWeight.bold), | ||
| 18 | ), | 24 | ), |
| 19 | - body: Center( | 25 | + actions: [ |
| 20 | - child: Text('개발자 정보 작업 구역'), | 26 | + IconButton( |
| 27 | + icon: Icon( | ||
| 28 | + Icons.settings, | ||
| 29 | + color: Colors.black, | ||
| 21 | ), | 30 | ), |
| 31 | + onPressed: () { | ||
| 32 | + Navigator.push( | ||
| 33 | + context, | ||
| 34 | + MaterialPageRoute( | ||
| 35 | + builder: (BuildContext context) => SettingPage(), | ||
| 36 | + )); | ||
| 37 | + }, | ||
| 38 | + ) | ||
| 39 | + ], | ||
| 22 | ), | 40 | ), |
| 41 | + body: Text('1234'), | ||
| 23 | ); | 42 | ); |
| 24 | } | 43 | } |
| 25 | } | 44 | } | ... | ... |
| 1 | +import 'package:flutter/cupertino.dart'; | ||
| 2 | +import 'package:flutter/material.dart'; | ||
| 3 | +import 'dart:convert'; | ||
| 4 | +import 'package:http/http.dart' as http; | ||
| 5 | +import 'package:flutter_dotenv/flutter_dotenv.dart'; | ||
| 6 | +// Screen import | ||
| 7 | +import '../models/Bottle.dart'; | ||
| 8 | +import '../../utils/user_secure_stoarge.dart'; | ||
| 9 | + | ||
| 10 | +class HubModifyList extends StatefulWidget { | ||
| 11 | + List<int> hublist; | ||
| 12 | + HubModifyList({Key key, this.hublist}) : super(key: key); | ||
| 13 | + | ||
| 14 | + @override | ||
| 15 | + _HubModifyListState createState() => _HubModifyListState(); | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +class _HubModifyListState extends State<HubModifyList> { | ||
| 19 | + List<int> _hublist = new List<int>(); | ||
| 20 | + //Get Hub List 함수 | ||
| 21 | + Future<String> getHubList() async { | ||
| 22 | + String usertoken = await UserSecureStorage.getUserToken(); | ||
| 23 | + http.Response response = await http.get( | ||
| 24 | + Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'hub'), | ||
| 25 | + headers: {"authorization": usertoken}, | ||
| 26 | + ); | ||
| 27 | + List<dynamic> values = new List<dynamic>(); | ||
| 28 | + if (_hublist.length != 0) { | ||
| 29 | + _hublist.clear(); | ||
| 30 | + } | ||
| 31 | + if (response.statusCode == 200) { | ||
| 32 | + values = json.decode(response.body); | ||
| 33 | + for (int i = 0; i < values.length; i++) { | ||
| 34 | + _hublist.add(values[i]['hubId']); | ||
| 35 | + } | ||
| 36 | + print(_hublist); | ||
| 37 | + return "get완료"; | ||
| 38 | + } else if (response.statusCode == 404) { | ||
| 39 | + return "Not Found"; | ||
| 40 | + } else { | ||
| 41 | + return "Error"; | ||
| 42 | + } | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + Widget build(BuildContext context) { | ||
| 46 | + final Size size = MediaQuery.of(context).size; | ||
| 47 | + return Scaffold( | ||
| 48 | + appBar: AppBar( | ||
| 49 | + backgroundColor: Colors.white, | ||
| 50 | + leading: new Icon(Icons.medical_services_rounded, | ||
| 51 | + color: Colors.black, size: 45.0), | ||
| 52 | + title: Text( | ||
| 53 | + 'Smart Medicine Box', | ||
| 54 | + style: TextStyle( | ||
| 55 | + color: Colors.black, | ||
| 56 | + fontSize: 23, | ||
| 57 | + fontFamily: 'Noto', | ||
| 58 | + fontWeight: FontWeight.bold), | ||
| 59 | + ), | ||
| 60 | + ), | ||
| 61 | + body: FutureBuilder( | ||
| 62 | + future: getHubList(), | ||
| 63 | + builder: (BuildContext context, AsyncSnapshot snapshot) { | ||
| 64 | + if (snapshot.hasData == false) { | ||
| 65 | + return CircularProgressIndicator(); | ||
| 66 | + } else if (snapshot.hasError) { | ||
| 67 | + return Padding( | ||
| 68 | + padding: const EdgeInsets.all(8.0), | ||
| 69 | + child: Text( | ||
| 70 | + 'Error: ${snapshot.error}', | ||
| 71 | + style: TextStyle(fontSize: 15), | ||
| 72 | + ), | ||
| 73 | + ); | ||
| 74 | + } else { | ||
| 75 | + return Container( | ||
| 76 | + height: size.height, | ||
| 77 | + child: Column( | ||
| 78 | + mainAxisAlignment: MainAxisAlignment.center, | ||
| 79 | + children: <Widget>[ | ||
| 80 | + Container( | ||
| 81 | + height: size.height * 0.1, | ||
| 82 | + width: size.width, | ||
| 83 | + child: Center( | ||
| 84 | + child: Text( | ||
| 85 | + '등록된 허브 리스트', | ||
| 86 | + textScaleFactor: 1.0, | ||
| 87 | + style: TextStyle( | ||
| 88 | + fontSize: 28, | ||
| 89 | + fontFamily: 'Noto', | ||
| 90 | + fontWeight: FontWeight.bold), | ||
| 91 | + ), | ||
| 92 | + ), | ||
| 93 | + decoration: BoxDecoration(border: Border.all()), | ||
| 94 | + ), | ||
| 95 | + SizedBox(height: 30), | ||
| 96 | + Expanded( | ||
| 97 | + child: ListView.separated( | ||
| 98 | + padding: const EdgeInsets.all(30), | ||
| 99 | + itemCount: | ||
| 100 | + _hublist.length == null ? 0 : _hublist.length, | ||
| 101 | + itemBuilder: (BuildContext context, int index) { | ||
| 102 | + return Container( | ||
| 103 | + padding: EdgeInsets.all(8.0), | ||
| 104 | + decoration: BoxDecoration( | ||
| 105 | + border: Border.all(), | ||
| 106 | + borderRadius: | ||
| 107 | + BorderRadius.all(Radius.circular(25.0)), | ||
| 108 | + ), | ||
| 109 | + child: ListTile( | ||
| 110 | + title: Text( | ||
| 111 | + 'HUB ID: ' + '${_hublist[index]}', | ||
| 112 | + style: TextStyle( | ||
| 113 | + color: Colors.black, | ||
| 114 | + fontSize: 20, | ||
| 115 | + fontFamily: 'Noto', | ||
| 116 | + fontWeight: FontWeight.bold), | ||
| 117 | + ), | ||
| 118 | + trailing: Icon(Icons.highlight_remove), | ||
| 119 | + onTap: () async { | ||
| 120 | + print('삭제 할거임'); | ||
| 121 | + }), | ||
| 122 | + ); | ||
| 123 | + }, | ||
| 124 | + separatorBuilder: (BuildContext contetx, int index) => | ||
| 125 | + const Divider(), | ||
| 126 | + ), | ||
| 127 | + ), | ||
| 128 | + Container( | ||
| 129 | + padding: EdgeInsets.fromLTRB(0, 20, 0, 20), | ||
| 130 | + width: size.width * 0.8, | ||
| 131 | + height: size.height * 0.13, | ||
| 132 | + margin: EdgeInsets.only(bottom: 0), | ||
| 133 | + child: FlatButton( | ||
| 134 | + height: size.height * 0.07, | ||
| 135 | + onPressed: () {}, | ||
| 136 | + child: Text( | ||
| 137 | + '허브 추가', | ||
| 138 | + textScaleFactor: 1.0, | ||
| 139 | + style: TextStyle( | ||
| 140 | + color: Colors.white, | ||
| 141 | + fontSize: 24, | ||
| 142 | + fontFamily: 'Noto', | ||
| 143 | + fontWeight: FontWeight.bold), | ||
| 144 | + ), | ||
| 145 | + color: Color(0xff0B1E33), | ||
| 146 | + shape: RoundedRectangleBorder( | ||
| 147 | + borderRadius: BorderRadius.circular(50)), | ||
| 148 | + ), | ||
| 149 | + ), | ||
| 150 | + ], | ||
| 151 | + ), | ||
| 152 | + ); | ||
| 153 | + } | ||
| 154 | + }), | ||
| 155 | + ); | ||
| 156 | + } | ||
| 157 | +} |
| ... | @@ -77,24 +77,18 @@ class CustomPicker extends CommonPickerModel { | ... | @@ -77,24 +77,18 @@ class CustomPicker extends CommonPickerModel { |
| 77 | DateTime finalTime() { | 77 | DateTime finalTime() { |
| 78 | var leftindex; | 78 | var leftindex; |
| 79 | 79 | ||
| 80 | - print(indexs); | ||
| 81 | - | ||
| 82 | if (indexs == 1) { | 80 | if (indexs == 1) { |
| 83 | - if(this.currentLeftIndex() == 12){ | 81 | + if (this.currentLeftIndex() == 12) { |
| 84 | leftindex = 12; | 82 | leftindex = 12; |
| 85 | } else { | 83 | } else { |
| 86 | leftindex = this.currentLeftIndex() + 12; | 84 | leftindex = this.currentLeftIndex() + 12; |
| 87 | } | 85 | } |
| 88 | - | ||
| 89 | - | ||
| 90 | } else if (indexs == 0) { | 86 | } else if (indexs == 0) { |
| 91 | - if(this.currentLeftIndex() == 12){ | 87 | + if (this.currentLeftIndex() == 12) { |
| 92 | leftindex = 0; | 88 | leftindex = 0; |
| 93 | } else { | 89 | } else { |
| 94 | leftindex = this.currentLeftIndex(); | 90 | leftindex = this.currentLeftIndex(); |
| 95 | } | 91 | } |
| 96 | - | ||
| 97 | - | ||
| 98 | } | 92 | } |
| 99 | 93 | ||
| 100 | return currentTime.isUtc | 94 | return currentTime.isUtc | ... | ... |
| ... | @@ -19,13 +19,12 @@ class Bottle { | ... | @@ -19,13 +19,12 @@ class Bottle { |
| 19 | this.dosage}); | 19 | this.dosage}); |
| 20 | 20 | ||
| 21 | factory Bottle.fromJson(Map<String, dynamic> parsedJson) { | 21 | factory Bottle.fromJson(Map<String, dynamic> parsedJson) { |
| 22 | - print(parsedJson['temparture']); | ||
| 23 | return Bottle( | 22 | return Bottle( |
| 24 | bottleId: parsedJson['bottleId'], | 23 | bottleId: parsedJson['bottleId'], |
| 25 | temperature: parsedJson['temperature'].toString(), | 24 | temperature: parsedJson['temperature'].toString(), |
| 26 | humidity: parsedJson['humidity'].toString(), | 25 | humidity: parsedJson['humidity'].toString(), |
| 27 | balance: parsedJson['balance'].toString(), | 26 | balance: parsedJson['balance'].toString(), |
| 28 | - recentOpen: DateTime.parse(parsedJson['recentOpen']), | 27 | + recentOpen: DateTime.parse(parsedJson['recentOpen']).toLocal(), |
| 29 | medicineId: parsedJson['medicineId'], | 28 | medicineId: parsedJson['medicineId'], |
| 30 | hubId: parsedJson['hubId'], | 29 | hubId: parsedJson['hubId'], |
| 31 | dosage: parsedJson['dosage'], | 30 | dosage: parsedJson['dosage'], | ... | ... |
-
Please register or login to post a comment