Skip to content

Commit ff01510

Browse files
committed
Working again
1 parent 449f329 commit ff01510

16 files changed

+153
-134
lines changed

analysis_options.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
include: package:pedantic/analysis_options.1.9.0.yaml
2+
linter:
3+
rules:
4+
- prefer_final_locals

lib/data/app_database.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'package:path/path.dart';
2-
import 'package:sqflite/sqflite.dart';
32
import 'package:path_provider/path_provider.dart';
3+
import 'package:sqflite/sqflite.dart';
44
import 'package:sqlbrite/sqlbrite.dart';
55
import 'package:sqlite_bloc_rxdart/data/contact_dao.dart';
66
import 'package:sqlite_bloc_rxdart/data/contact_dao_impl.dart';
@@ -11,6 +11,7 @@ const dbName = 'flutter_sqlite_bloc_rxdart.db';
1111

1212
class AppDatabase {
1313
static Database _db;
14+
1415
static Future<Database> get _dbFuture async => _db ??= await _open();
1516

1617
final ContactDao contactDao;
@@ -20,7 +21,7 @@ class AppDatabase {
2021

2122
static Future<Database> _open() async {
2223
final directory = await getApplicationDocumentsDirectory();
23-
String path = join(directory.path, dbName);
24+
final path = join(directory.path, dbName);
2425
return await openDatabase(
2526
path,
2627
version: 1,
@@ -37,7 +38,7 @@ class AppDatabase {
3738
)''');
3839

3940
final batch = db.batch();
40-
for (int i = 0; i < 200; i++) {
41+
for (var i = 0; i < 200; i++) {
4142
batch.insert(
4243
tableContacts,
4344
ContactEntity(

lib/data/contact_dao.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import 'package:rxdart/rxdart.dart';
21
import 'package:sqlite_bloc_rxdart/data/contact_entity.dart';
32

43
abstract class ContactDao {
5-
Observable<List<ContactEntity>> search(String query);
4+
Stream<List<ContactEntity>> search(String query);
65

7-
Observable<ContactEntity> findById(int id);
6+
Stream<ContactEntity> findById(int id);
87

98
Future<bool> deleteById(int id);
109

lib/data/contact_dao_impl.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ class ContactDaoImpl implements ContactDao {
1111
const ContactDaoImpl(this._briteDatabaseFuture);
1212

1313
@override
14-
Observable<List<ContactEntity>> search(String query) {
15-
return Observable.fromFuture(_briteDatabaseFuture).flatMap((db) {
14+
Stream<List<ContactEntity>> search(String query) {
15+
return Stream.fromFuture(_briteDatabaseFuture).flatMap((db) {
1616
return db
1717
.createQuery(
1818
tableContacts,
@@ -30,8 +30,8 @@ class ContactDaoImpl implements ContactDao {
3030
}
3131

3232
@override
33-
Observable<ContactEntity> findById(int id) {
34-
return Observable.fromFuture(_briteDatabaseFuture).flatMap((db) {
33+
Stream<ContactEntity> findById(int id) {
34+
return Stream.fromFuture(_briteDatabaseFuture).flatMap((db) {
3535
return db
3636
.createQuery(
3737
tableContacts,

lib/data/contact_repository_impl.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import 'package:rxdart/rxdart.dart';
21
import 'package:sqlite_bloc_rxdart/data/contact_dao.dart';
32
import 'package:sqlite_bloc_rxdart/data/contact_entity.dart';
43
import 'package:sqlite_bloc_rxdart/domain/contact.dart';
@@ -10,14 +9,14 @@ class ContactRepositoryImpl implements ContactRepository {
109
const ContactRepositoryImpl(this._contactDao);
1110

1211
@override
13-
Observable<List<Contact>> search({String query = ''}) {
12+
Stream<List<Contact>> search({String query = ''}) {
1413
return _contactDao.search(query).map((entites) {
1514
return entites.map(_toContact).toList(growable: false);
1615
});
1716
}
1817

1918
@override
20-
Observable<Contact> getContactById(int id) {
19+
Stream<Contact> getContactById(int id) {
2120
return _contactDao.findById(id).map(_toContact);
2221
}
2322

lib/domain/contact.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ abstract class Contact implements Built<Contact, ContactBuilder> {
1616

1717
Contact._();
1818

19-
factory Contact([updates(ContactBuilder b)]) = _$Contact;
19+
factory Contact([Function(ContactBuilder b) updates]) = _$Contact;
2020
}
2121

2222
class Gender extends EnumClass {

lib/domain/contact_repository.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import 'package:rxdart/rxdart.dart';
21
import 'package:sqlite_bloc_rxdart/domain/contact.dart';
32

43
abstract class ContactRepository {
5-
Observable<List<Contact>> search({String query: ''});
4+
Stream<List<Contact>> search({String query = ''});
65

7-
Observable<Contact> getContactById(int id);
6+
Stream<Contact> getContactById(int id);
87

98
Future<bool> delete(Contact contact);
109

lib/pages/detail/detail_bloc.dart

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import 'package:distinct_value_connectable_observable/distinct_value_connectable_observable.dart';
1+
import 'package:distinct_value_connectable_stream/distinct_value_connectable_stream.dart';
22
import 'package:flutter_bloc_pattern/flutter_bloc_pattern.dart';
33
import 'package:rxdart/rxdart.dart';
44
import 'package:sqlite_bloc_rxdart/domain/contact.dart';
55
import 'package:sqlite_bloc_rxdart/domain/contact_repository.dart';
66

77
class DetailBloc implements BaseBloc {
8-
final ValueObservable<Contact> contact$;
8+
final ValueStream<Contact> contact$;
99

1010
final void Function() _dispose;
1111

@@ -24,19 +24,17 @@ class DetailBloc implements BaseBloc {
2424
assert(contactRepo != null, 'contactRepo cannot be null');
2525
assert(initial != null, 'initial cannot be null');
2626

27-
final contactDistinct$ = publishValueSeededDistinct(
28-
contactRepo.getContactById(initial.id),
29-
seedValue: initial,
30-
);
27+
final contact$ = contactRepo
28+
.getContactById(initial.id)
29+
.publishValueSeededDistinct(seedValue: initial);
3130

3231
final subscriptions = [
33-
contactDistinct$
34-
.listen((contact) => print('[DETAIL_BLOC] contact=$contact')),
35-
contactDistinct$.connect(),
32+
contact$.listen((contact) => print('[DETAIL_BLOC] contact=$contact')),
33+
contact$.connect(),
3634
];
3735

3836
return DetailBloc._(
39-
contactDistinct$,
37+
contact$,
4038
() async {
4139
await Future.wait(subscriptions.map((s) => s.cancel()));
4240
print('[DETAIL_BLOC] disposed id=${initial.id}');

lib/pages/detail/detail_page.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class _DetailPageState extends State<DetailPage> {
2222
double _scale;
2323
double _top;
2424

25-
calculateScaleAndTop() {
25+
void calculateScaleAndTop() {
2626
final defaultTopMargin = 256.0 - 23.0;
2727
final startScale = 96.0;
2828
final endScale = startScale / 2;
@@ -195,17 +195,17 @@ class _DetailPageState extends State<DetailPage> {
195195
);
196196
}
197197

198-
_call(String phone) async {
198+
void _call(String phone) async {
199199
final url = 'tel:$phone';
200200
if (await canLaunch(url)) {
201-
launch(url);
201+
await launch(url);
202202
}
203203
}
204204

205-
_sms(String phone) async {
205+
void _sms(String phone) async {
206206
final url = 'sms:$phone';
207207
if (await canLaunch(url)) {
208-
launch(url);
208+
await launch(url);
209209
}
210210
}
211211
}

lib/pages/edit_or_add/edit_or_add_bloc.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class EditOrAddBloc implements BaseBloc {
2323
final Stream<NameError> nameError$;
2424
final Stream<PhoneError> phoneError$;
2525
final Stream<AddressError> addressError$;
26-
final ValueObservable<Gender> gender$;
26+
final ValueStream<Gender> gender$;
2727
final Stream<bool> isLoading$;
2828
final Stream<EditOrAddMessage> message$;
2929

@@ -101,7 +101,7 @@ class EditOrAddBloc implements BaseBloc {
101101

102102
final submit$ = submitController
103103
.withLatestFrom(
104-
Observable.combineLatest(
104+
Rx.combineLatest(
105105
[
106106
nameError$,
107107
phoneError$,
@@ -113,7 +113,7 @@ class EditOrAddBloc implements BaseBloc {
113113
)
114114
.share();
115115

116-
final message$ = Observable.merge([
116+
final message$ = Rx.merge([
117117
submit$
118118
.where((isValid) => !isValid)
119119
.map((_) => const InvalidInformation()),

0 commit comments

Comments
 (0)