Skip to content

Commit 0858160

Browse files
committed
update
1 parent d8ce042 commit 0858160

21 files changed

+151
-159
lines changed

README.md

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,10 @@
11
# sqlite_bloc_rxdart
22

3-
A new Flutter project.
3+
sqlite BLoC rxdart
44

55
# Screenshots
66

77
| Home page | Detail page & Edit page | Add new page |
88
| ------------- | ------------- | --------------
9-
| ![home](screenshots/home.gif) | ![detail_and_edit](screenshots/detail_and_edit.gif) | ![add_new](screenshots/add_new.gif) |
9+
| ![home](https://github.com/hoc081098/hoc081098.github.io/blob/master/sqlite_bloc_rxdart/home.gif?raw=true) | ![detail_and_edit](https://github.com/hoc081098/hoc081098.github.io/blob/master/sqlite_bloc_rxdart/detail_and_edit.gif?raw=true) | ![add_new](https://github.com/hoc081098/hoc081098.github.io/blob/master/sqlite_bloc_rxdart/add_new.gif?raw=true) |
1010

11-
12-
## Getting Started
13-
14-
This project is a starting point for a Flutter application.
15-
16-
A few resources to get you started if this is your first Flutter project:
17-
18-
- [Lab: Write your first Flutter app](https://flutter.io/docs/get-started/codelab)
19-
- [Cookbook: Useful Flutter samples](https://flutter.io/docs/cookbook)
20-
21-
For help getting started with Flutter, view our
22-
[online documentation](https://flutter.io/docs), which offers tutorials,
23-
samples, guidance on mobile development, and a full API reference.

analysis_options.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
include: package:pedantic/analysis_options.1.9.0.yaml
22
linter:
33
rules:
4-
- prefer_final_locals
4+
- prefer_final_locals
5+
- prefer_relative_imports

lib/app.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import 'package:flutter/material.dart';
22
import 'package:flutter_bloc_pattern/flutter_bloc_pattern.dart';
33
import 'package:flutter_provider/flutter_provider.dart';
4-
import 'package:sqlite_bloc_rxdart/domain/contact_repository.dart';
5-
import 'package:sqlite_bloc_rxdart/pages/home/home_bloc.dart';
6-
import 'package:sqlite_bloc_rxdart/pages/home/home_page.dart';
4+
5+
import 'domain/contact_repository.dart';
6+
import 'pages/home/home_bloc.dart';
7+
import 'pages/home/home_page.dart';
78

89
class MyApp extends StatelessWidget {
910
const MyApp({Key key}) : super(key: key);

lib/data/contact_repository_impl.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import 'package:sqlite_bloc_rxdart/data/contact_dao.dart';
2-
import 'package:sqlite_bloc_rxdart/data/contact_entity.dart';
3-
import 'package:sqlite_bloc_rxdart/domain/contact.dart';
4-
import 'package:sqlite_bloc_rxdart/domain/contact_repository.dart';
1+
import '../domain/contact.dart';
2+
import '../domain/contact_repository.dart';
3+
import 'local/dao/contact_dao.dart';
4+
import 'local/dao/contact_entity.dart';
55

66
class ContactRepositoryImpl implements ContactRepository {
77
final ContactDao _contactDao;
@@ -10,8 +10,8 @@ class ContactRepositoryImpl implements ContactRepository {
1010

1111
@override
1212
Stream<List<Contact>> search({String query = ''}) {
13-
return _contactDao.search(query).map((entites) {
14-
return entites.map(_toContact).toList(growable: false);
13+
return _contactDao.search(query).map((entities) {
14+
return entities.map(_toContact).toList(growable: false);
1515
});
1616
}
1717

lib/data/app_database.dart renamed to lib/data/local/app_database.dart

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,28 @@ import 'package:path/path.dart';
22
import 'package:path_provider/path_provider.dart';
33
import 'package:sqflite/sqflite.dart';
44
import 'package:sqlbrite/sqlbrite.dart';
5-
import 'package:sqlite_bloc_rxdart/data/contact_dao.dart';
6-
import 'package:sqlite_bloc_rxdart/data/contact_dao_impl.dart';
7-
import 'package:sqlite_bloc_rxdart/data/contact_entity.dart';
8-
import 'package:sqlite_bloc_rxdart/data/contact_entry.dart';
5+
6+
import 'dao/contact_dao.dart';
7+
import 'dao/contact_dao_impl.dart';
8+
import 'dao/contact_entity.dart';
9+
import 'dao/contact_entry.dart';
910

1011
const dbName = 'flutter_sqlite_bloc_rxdart.db';
1112

1213
class AppDatabase {
13-
static Database _db;
14-
15-
static Future<Database> get _dbFuture async => _db ??= await _open();
16-
1714
final ContactDao contactDao;
1815

19-
AppDatabase()
20-
: contactDao = ContactDaoImpl(_dbFuture.then((db) => BriteDatabase(db)));
16+
AppDatabase._(this.contactDao);
17+
18+
factory AppDatabase() {
19+
final _dbFuture = _open().then((db) => BriteDatabase(db));
20+
return AppDatabase._(ContactDaoImpl(_dbFuture));
21+
}
2122

2223
static Future<Database> _open() async {
2324
final directory = await getApplicationDocumentsDirectory();
2425
final path = join(directory.path, dbName);
26+
2527
return await openDatabase(
2628
path,
2729
version: 1,

lib/data/contact_dao.dart renamed to lib/data/local/dao/contact_dao.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import 'package:sqlite_bloc_rxdart/data/contact_entity.dart';
1+
import 'contact_entity.dart';
22

33
abstract class ContactDao {
44
Stream<List<ContactEntity>> search(String query);

lib/data/contact_dao_impl.dart renamed to lib/data/local/dao/contact_dao_impl.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import 'package:rxdart/rxdart.dart';
22
import 'package:sqflite/sqflite.dart';
3-
import 'package:sqlite_bloc_rxdart/data/contact_dao.dart';
4-
import 'package:sqlite_bloc_rxdart/data/contact_entry.dart';
53
import 'package:sqlbrite/sqlbrite.dart';
6-
import 'package:sqlite_bloc_rxdart/data/contact_entity.dart';
4+
5+
import 'contact_dao.dart';
6+
import 'contact_entity.dart';
7+
import 'contact_entry.dart';
78

89
class ContactDaoImpl implements ContactDao {
910
final Future<BriteDatabase> _briteDatabaseFuture;

lib/data/contact_entity.dart renamed to lib/data/local/dao/contact_entity.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import 'package:flutter/widgets.dart';
2-
import 'package:sqlite_bloc_rxdart/data/contact_entry.dart';
1+
import 'package:meta/meta.dart';
2+
3+
import 'contact_entry.dart';
34

45
class ContactEntity {
56
final int id;
File renamed without changes.

lib/domain/contact_repository.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import 'package:sqlite_bloc_rxdart/domain/contact.dart';
1+
import 'contact.dart';
22

33
abstract class ContactRepository {
44
Stream<List<Contact>> search({String query = ''});

0 commit comments

Comments
 (0)