diff --git a/libmate/lib/main.dart b/libmate/lib/main.dart index 4e4d446..57547d3 100644 --- a/libmate/lib/main.dart +++ b/libmate/lib/main.dart @@ -1,4 +1,5 @@ import 'package:libmate/datastore/model.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:provider/provider.dart'; import 'package:flutter/material.dart'; import 'package:libmate/views/about.dart'; @@ -11,6 +12,9 @@ import 'package:libmate/views/libcard.dart'; import 'package:libmate/views/request.dart'; import 'package:libmate/views/search.dart'; import 'package:libmate/views/voiceSearch.dart'; +import 'package:libmate/views/issued.dart'; +import 'package:fuzzy/fuzzy.dart'; + void main() => runApp(MyApp()); class MyApp extends StatefulWidget { @@ -21,6 +25,9 @@ class MyApp extends StatefulWidget { class _MyAppState extends State { bool loaded; UserModel model; + var fuse; + List books; + @override void initState() { @@ -28,11 +35,27 @@ class _MyAppState extends State { loaded = false; loadState(); } + void loadBookData() { + Firestore.instance.collection('books').getDocuments().then((snapshot) { + final documents = snapshot.documents; + books = List(); + + for (var document in documents) { + final name = document.data["name"]; + books.add(BookModel(name: name)); + } + }).then((some_res) { + final wk = WeightedKey(name: "keyer", getter: (obj) => obj.name, weight: 1); + final fo = FuzzyOptions(keys: [wk]); + fuse = Fuzzy(books, options: fo); + // in fuse.search, score of 0 is fullmatch, 1 is complete mismatch + }); + } void loadState() async { model = await UserModel.fromSharedPrefs(); print(model.uid); - + loadBookData(); setState(() { loaded = true; }); @@ -68,6 +91,8 @@ class _MyAppState extends State { '/home': (BuildContext context) => new Home(loggedIn: usermodel.isLoggedIn()), '/search': (BuildContext context) => new SearchPage(), + '/issued': (BuildContext context) => new IssuedPage(), + '/search': (BuildContext context) => new SearchPage(fuse: fuse), '/voicesearch': (BuildContext context) => new VoiceSearchPage(), '/contribute': (BuildContext context) => new ContributePage(), '/friends': (BuildContext context) => new FriendsPage(), diff --git a/libmate/lib/views/drawer.dart b/libmate/lib/views/drawer.dart index 1facf41..d1cd864 100644 --- a/libmate/lib/views/drawer.dart +++ b/libmate/lib/views/drawer.dart @@ -43,6 +43,7 @@ class AppDrawer extends StatelessWidget { _DrawerViewItem(Icons.home, 'Home', '/home').build(context), _DrawerViewItem(Icons.search, 'Search', '/search').build(context), _DrawerViewItem(Icons.keyboard_voice, 'VoiceSearch', '/voicesearch').build(context), + _DrawerViewItem(Icons.location_on, 'Guide', '/guide').build(context), _DrawerViewItem(Icons.file_upload, 'Contribute Info', '/contribute') .build(context), _DrawerViewItem(Icons.library_books, 'Issued Books', '/issued')