Showing
6 changed files
with
189 additions
and
138 deletions
... | @@ -86,4 +86,7 @@ appbar 관련 디자인은 추후 구현 예정 | ... | @@ -86,4 +86,7 @@ appbar 관련 디자인은 추후 구현 예정 |
86 | + 로그인 권한 문제 해결 | 86 | + 로그인 권한 문제 해결 |
87 | 87 | ||
88 | ### 2021-05-26 | 88 | ### 2021-05-26 |
89 | -+ future buillder 변경 | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
89 | ++ future buillder 변경 | ||
90 | + | ||
91 | +### 2021-05-27 | ||
92 | ++ app 뒤로가기 설정 변경 | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -9,6 +9,7 @@ import '../utils/user_secure_stoarge.dart'; | ... | @@ -9,6 +9,7 @@ import '../utils/user_secure_stoarge.dart'; |
9 | import 'models/Bottle.dart'; | 9 | import 'models/Bottle.dart'; |
10 | import 'models/Medicine.dart'; | 10 | import 'models/Medicine.dart'; |
11 | import 'package:Smart_Medicine_Box/src/screens/SettingPage.dart'; | 11 | import 'package:Smart_Medicine_Box/src/screens/SettingPage.dart'; |
12 | +import 'Register/BottleList.dart'; | ||
12 | 13 | ||
13 | class DashBoard extends StatefulWidget { | 14 | class DashBoard extends StatefulWidget { |
14 | int pageNumber; | 15 | int pageNumber; |
... | @@ -24,6 +25,35 @@ class DashBoard extends StatefulWidget { | ... | @@ -24,6 +25,35 @@ class DashBoard extends StatefulWidget { |
24 | 25 | ||
25 | class _DashBoardState extends State<DashBoard> { | 26 | class _DashBoardState extends State<DashBoard> { |
26 | int _selectedIndex = 0; | 27 | int _selectedIndex = 0; |
28 | + List<Bottle> _bottleList = new List<Bottle>(); | ||
29 | + //Get BottleList | ||
30 | + Future<String> getBottleList() async { | ||
31 | + String usertoken = await UserSecureStorage.getUserToken(); | ||
32 | + String hubid = await UserSecureStorage.getHubId(); | ||
33 | + http.Response response = await http.get( | ||
34 | + Uri.encodeFull(DotEnv().env['SERVER_URL'] + 'bottle/hub/' + hubid), | ||
35 | + headers: {"authorization": usertoken}, | ||
36 | + ); | ||
37 | + print(response.body); | ||
38 | + if (_bottleList.length != 0) { | ||
39 | + _bottleList.clear(); | ||
40 | + } | ||
41 | + if (response.statusCode == 200) { | ||
42 | + List<dynamic> values = new List<dynamic>(); | ||
43 | + values = json.decode(response.body); | ||
44 | + | ||
45 | + for (int i = 0; i < values.length; i++) { | ||
46 | + Map<String, dynamic> map = values[i]; | ||
47 | + _bottleList.add(Bottle.fromJson(map)); | ||
48 | + return "GET"; | ||
49 | + } | ||
50 | + } else if (response.statusCode == 404) { | ||
51 | + return "Not Found"; | ||
52 | + } else { | ||
53 | + return "Error"; | ||
54 | + } | ||
55 | + return "Error"; | ||
56 | + } | ||
27 | 57 | ||
28 | Widget build(BuildContext context) { | 58 | Widget build(BuildContext context) { |
29 | _selectedIndex = widget.pageNumber; | 59 | _selectedIndex = widget.pageNumber; |
... | @@ -33,82 +63,93 @@ class _DashBoardState extends State<DashBoard> { | ... | @@ -33,82 +63,93 @@ class _DashBoardState extends State<DashBoard> { |
33 | outerInformationpage(context), | 63 | outerInformationpage(context), |
34 | ]; | 64 | ]; |
35 | 65 | ||
36 | - return Scaffold( | 66 | + return WillPopScope( |
37 | - backgroundColor: Color(0xffe5f4ff), | 67 | + child: Scaffold( |
38 | - appBar: AppBar( | 68 | + backgroundColor: Color(0xffe5f4ff), |
39 | - iconTheme: IconThemeData(color: Colors.black), | 69 | + appBar: AppBar( |
40 | - backgroundColor: Colors.white, | 70 | + iconTheme: IconThemeData(color: Colors.black), |
41 | - title: Text( | 71 | + backgroundColor: Colors.white, |
42 | - 'Smart Medicine Box', | 72 | + title: Text( |
43 | - style: TextStyle( | 73 | + 'Smart Medicine Box', |
44 | - color: Colors.black, | 74 | + style: TextStyle( |
45 | - fontSize: 20, | 75 | + color: Colors.black, |
46 | - fontFamily: 'Noto', | 76 | + fontSize: 20, |
47 | - fontWeight: FontWeight.bold), | 77 | + fontFamily: 'Noto', |
78 | + fontWeight: FontWeight.bold), | ||
79 | + ), | ||
80 | + actions: [ | ||
81 | + IconButton( | ||
82 | + icon: Icon( | ||
83 | + Icons.settings, | ||
84 | + color: Colors.black, | ||
85 | + ), | ||
86 | + onPressed: () { | ||
87 | + Navigator.push( | ||
88 | + context, | ||
89 | + MaterialPageRoute( | ||
90 | + builder: (BuildContext context) => SettingPage(), | ||
91 | + )); | ||
92 | + }, | ||
93 | + ) | ||
94 | + ], | ||
48 | ), | 95 | ), |
49 | - actions: [ | 96 | + drawer: Drawer( |
50 | - IconButton( | 97 | + child: ListView( |
51 | - icon: Icon( | 98 | + children: [ |
52 | - Icons.settings, | 99 | + DrawerHeader( |
53 | - color: Colors.black, | 100 | + child: Text('Drawer Header'), |
54 | - ), | 101 | + decoration: BoxDecoration( |
55 | - onPressed: () { | 102 | + color: Colors.blue, |
56 | - Navigator.push( | 103 | + ), |
57 | - context, | ||
58 | - MaterialPageRoute( | ||
59 | - builder: (BuildContext context) => SettingPage(), | ||
60 | - )); | ||
61 | - }, | ||
62 | - ) | ||
63 | - ], | ||
64 | - ), | ||
65 | - drawer: Drawer( | ||
66 | - child: ListView( | ||
67 | - children: [ | ||
68 | - DrawerHeader( | ||
69 | - child: Text('Drawer Header'), | ||
70 | - decoration: BoxDecoration( | ||
71 | - color: Colors.blue, | ||
72 | ), | 104 | ), |
73 | - ), | 105 | + ListTile( |
74 | - ListTile( | 106 | + title: Text('Test 1'), |
75 | - title: Text('Test 1'), | 107 | + onTap: () {}, |
76 | - onTap: () {}, | 108 | + ), |
77 | - ), | 109 | + ListTile( |
78 | - ListTile( | 110 | + title: Text('Test 2'), |
79 | - title: Text('Test 2'), | 111 | + onTap: () {}, |
80 | - onTap: () {}, | 112 | + ), |
81 | - ), | 113 | + ListTile( |
82 | - ListTile( | 114 | + title: Text('Test 3'), |
83 | - title: Text('Test 3'), | 115 | + onTap: () {}, |
84 | - onTap: () {}, | 116 | + ), |
85 | - ), | 117 | + ], |
118 | + ), | ||
119 | + ), | ||
120 | + body: _tabs[_selectedIndex], | ||
121 | + bottomNavigationBar: BottomNavigationBar( | ||
122 | + type: BottomNavigationBarType.fixed, | ||
123 | + backgroundColor: Colors.grey, | ||
124 | + selectedItemColor: Colors.blue, | ||
125 | + unselectedItemColor: Colors.white.withOpacity(.60), | ||
126 | + selectedFontSize: 14, | ||
127 | + unselectedFontSize: 14, | ||
128 | + currentIndex: _selectedIndex, | ||
129 | + onTap: (int index) => { | ||
130 | + setState(() { | ||
131 | + _onItemTapped(index); | ||
132 | + }) | ||
133 | + }, | ||
134 | + items: [ | ||
135 | + BottomNavigationBarItem(icon: Icon(Icons.favorite), label: 'In'), | ||
136 | + BottomNavigationBarItem(icon: Icon(Icons.home), label: 'Home'), | ||
137 | + BottomNavigationBarItem( | ||
138 | + label: 'Out', | ||
139 | + icon: Icon(Icons.favorite), | ||
140 | + ) | ||
86 | ], | 141 | ], |
87 | ), | 142 | ), |
88 | ), | 143 | ), |
89 | - body: _tabs[_selectedIndex], | 144 | + onWillPop: () async { |
90 | - bottomNavigationBar: BottomNavigationBar( | 145 | + await getBottleList(); |
91 | - type: BottomNavigationBarType.fixed, | 146 | + Navigator.push( |
92 | - backgroundColor: Colors.grey, | 147 | + context, |
93 | - selectedItemColor: Colors.blue, | 148 | + MaterialPageRoute( |
94 | - unselectedItemColor: Colors.white.withOpacity(.60), | 149 | + builder: (BuildContext context) => |
95 | - selectedFontSize: 14, | 150 | + BottleList(bottlelist: _bottleList), |
96 | - unselectedFontSize: 14, | 151 | + )); |
97 | - currentIndex: _selectedIndex, | 152 | + }, |
98 | - onTap: (int index) => { | ||
99 | - setState(() { | ||
100 | - _onItemTapped(index); | ||
101 | - }) | ||
102 | - }, | ||
103 | - items: [ | ||
104 | - BottomNavigationBarItem(icon: Icon(Icons.favorite), label: 'In'), | ||
105 | - BottomNavigationBarItem(icon: Icon(Icons.home), label: 'Home'), | ||
106 | - BottomNavigationBarItem( | ||
107 | - label: 'Out', | ||
108 | - icon: Icon(Icons.favorite), | ||
109 | - ) | ||
110 | - ], | ||
111 | - ), | ||
112 | ); | 153 | ); |
113 | } | 154 | } |
114 | 155 | ||
... | @@ -314,7 +355,6 @@ Widget mainpage(BuildContext context) { | ... | @@ -314,7 +355,6 @@ Widget mainpage(BuildContext context) { |
314 | } | 355 | } |
315 | 356 | ||
316 | Widget ineerInformationpage(BuildContext context) { | 357 | Widget ineerInformationpage(BuildContext context) { |
317 | - Bottle _bottleinformation = new Bottle(); | ||
318 | //get bottle | 358 | //get bottle |
319 | Future<Bottle> _getbottle() async { | 359 | Future<Bottle> _getbottle() async { |
320 | String usertoken = await UserSecureStorage.getUserToken(); | 360 | String usertoken = await UserSecureStorage.getUserToken(); | ... | ... |
... | @@ -55,7 +55,7 @@ class _HomePageState extends State<HomePage> { | ... | @@ -55,7 +55,7 @@ class _HomePageState extends State<HomePage> { |
55 | textScaleFactor: 1.0, | 55 | textScaleFactor: 1.0, |
56 | style: TextStyle( | 56 | style: TextStyle( |
57 | color: Color(0xff004ca2), | 57 | color: Color(0xff004ca2), |
58 | - fontSize: 20, | 58 | + fontSize: 30, |
59 | fontFamily: 'Noto', | 59 | fontFamily: 'Noto', |
60 | fontWeight: FontWeight.bold), | 60 | fontWeight: FontWeight.bold), |
61 | ), | 61 | ), | ... | ... |
... | @@ -19,73 +19,78 @@ class BottleList extends StatefulWidget { | ... | @@ -19,73 +19,78 @@ class BottleList extends StatefulWidget { |
19 | class _BottleListState extends State<BottleList> { | 19 | class _BottleListState extends State<BottleList> { |
20 | Widget build(BuildContext context) { | 20 | Widget build(BuildContext context) { |
21 | final Size size = MediaQuery.of(context).size; | 21 | final Size size = MediaQuery.of(context).size; |
22 | - return Scaffold( | 22 | + return WillPopScope( |
23 | - body: Container( | 23 | + child: Scaffold( |
24 | - height: size.height, | 24 | + body: Container( |
25 | - child: Column( | 25 | + height: size.height, |
26 | - mainAxisAlignment: MainAxisAlignment.center, | 26 | + child: Column( |
27 | - children: <Widget>[ | 27 | + mainAxisAlignment: MainAxisAlignment.center, |
28 | - SizedBox(height: 70), | 28 | + children: <Widget>[ |
29 | - Container( | 29 | + SizedBox(height: 70), |
30 | - height: size.height * 0.1, | 30 | + Container( |
31 | - width: size.width, | 31 | + height: size.height * 0.1, |
32 | - child: Center( | 32 | + width: size.width, |
33 | - child: Text( | 33 | + child: Center( |
34 | - '등록된 약병 리스트', | 34 | + child: Text( |
35 | - textScaleFactor: 1.0, | 35 | + '등록된 약병 리스트', |
36 | - style: TextStyle( | 36 | + textScaleFactor: 1.0, |
37 | - fontSize: 28, | 37 | + style: TextStyle( |
38 | - fontFamily: 'Noto', | 38 | + fontSize: 28, |
39 | - fontWeight: FontWeight.bold), | 39 | + fontFamily: 'Noto', |
40 | + fontWeight: FontWeight.bold), | ||
41 | + ), | ||
40 | ), | 42 | ), |
43 | + decoration: BoxDecoration(border: Border.all()), | ||
41 | ), | 44 | ), |
42 | - decoration: BoxDecoration(border: Border.all()), | 45 | + SizedBox(height: 30), |
43 | - ), | 46 | + Expanded( |
44 | - SizedBox(height: 30), | 47 | + child: ListView.separated( |
45 | - Expanded( | 48 | + padding: const EdgeInsets.all(30), |
46 | - child: ListView.separated( | 49 | + itemCount: widget.bottlelist.length == null |
47 | - padding: const EdgeInsets.all(30), | 50 | + ? 0 |
48 | - itemCount: widget.bottlelist.length == null | 51 | + : widget.bottlelist.length, |
49 | - ? 0 | 52 | + itemBuilder: (BuildContext context, int index) { |
50 | - : widget.bottlelist.length, | 53 | + return Container( |
51 | - itemBuilder: (BuildContext context, int index) { | 54 | + padding: EdgeInsets.all(8.0), |
52 | - return Container( | 55 | + decoration: BoxDecoration(border: Border.all()), |
53 | - padding: EdgeInsets.all(8.0), | 56 | + child: ListTile( |
54 | - decoration: BoxDecoration(border: Border.all()), | 57 | + title: Text( |
55 | - child: ListTile( | 58 | + 'BOTTLE ID : ' + |
56 | - title: Text( | 59 | + '${widget.bottlelist[index].bottleId}', |
57 | - 'BOTTLE ID : ' + | 60 | + style: TextStyle( |
58 | - '${widget.bottlelist[index].bottleId}', | 61 | + color: Colors.black, |
59 | - style: TextStyle( | 62 | + fontSize: 20, |
60 | - color: Colors.black, | 63 | + fontFamily: 'Noto', |
61 | - fontSize: 20, | 64 | + fontWeight: FontWeight.bold), |
62 | - fontFamily: 'Noto', | 65 | + ), |
63 | - fontWeight: FontWeight.bold), | 66 | + trailing: Icon(Icons.arrow_forward), |
64 | - ), | 67 | + onTap: () async { |
65 | - trailing: Icon(Icons.arrow_forward), | 68 | + UserSecureStorage.setBottleId( |
66 | - onTap: () async { | 69 | + widget.bottlelist[index].bottleId.toString()); |
67 | - UserSecureStorage.setBottleId( | 70 | + UserSecureStorage.setMedicineId( |
68 | - widget.bottlelist[index].bottleId.toString()); | 71 | + widget.bottlelist[index].medicineId.toString()); |
69 | - UserSecureStorage.setMedicineId( | 72 | + Navigator.push( |
70 | - widget.bottlelist[index].medicineId.toString()); | 73 | + context, |
71 | - Navigator.push( | 74 | + MaterialPageRoute( |
72 | - context, | 75 | + builder: (BuildContext context) => DashBoard( |
73 | - MaterialPageRoute( | 76 | + pageNumber: 1, |
74 | - builder: (BuildContext context) => DashBoard( | 77 | + ), |
75 | - pageNumber: 1, | ||
76 | ), | 78 | ), |
77 | - ), | 79 | + ); |
78 | - ); | 80 | + }, |
79 | - }, | 81 | + ), |
80 | - ), | 82 | + ); |
81 | - ); | 83 | + }, |
82 | - }, | 84 | + separatorBuilder: (BuildContext contetx, int index) => |
83 | - separatorBuilder: (BuildContext contetx, int index) => | 85 | + const Divider(), |
84 | - const Divider(), | 86 | + ), |
85 | - ), | 87 | + ) |
86 | - ) | 88 | + ], |
87 | - ], | 89 | + )), |
88 | - )), | 90 | + ), |
91 | + onWillPop: () { | ||
92 | + SystemNavigator.pop(); | ||
93 | + }, | ||
89 | ); | 94 | ); |
90 | } | 95 | } |
91 | } | 96 | } | ... | ... |
... | @@ -117,6 +117,8 @@ class _RegisterBottleState extends State<RegisterBottle> { | ... | @@ -117,6 +117,8 @@ class _RegisterBottleState extends State<RegisterBottle> { |
117 | new FlatButton( | 117 | new FlatButton( |
118 | child: new Text('Close'), | 118 | child: new Text('Close'), |
119 | onPressed: () { | 119 | onPressed: () { |
120 | + UserSecureStorage.setBottleId( | ||
121 | + medicineBottleIDController.text); | ||
120 | Navigator.push( | 122 | Navigator.push( |
121 | context, | 123 | context, |
122 | MaterialPageRoute( | 124 | MaterialPageRoute( | ... | ... |
... | @@ -121,6 +121,7 @@ class _RegisterHubState extends State<RegisterHub> { | ... | @@ -121,6 +121,7 @@ class _RegisterHubState extends State<RegisterHub> { |
121 | print(saveMessage); | 121 | print(saveMessage); |
122 | if (saveMessage == "허브 등록 완료") { | 122 | if (saveMessage == "허브 등록 완료") { |
123 | UserSecureStorage.setHubId(medicineHubIDController.text); | 123 | UserSecureStorage.setHubId(medicineHubIDController.text); |
124 | + print(UserSecureStorage.getHubId()); | ||
124 | Navigator.push( | 125 | Navigator.push( |
125 | context, | 126 | context, |
126 | MaterialPageRoute( | 127 | MaterialPageRoute( | ... | ... |
-
Please register or login to post a comment