Skip to content

Commit 19ae404

Browse files
committed
去掉bmob
1 parent bc3acfd commit 19ae404

File tree

9 files changed

+42
-219
lines changed

9 files changed

+42
-219
lines changed

lib/blocs/habit/habit_bloc.dart

Lines changed: 13 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
import 'package:bloc/bloc.dart';
2-
import 'package:data_plugin/bmob/bmob_query.dart';
3-
import 'package:data_plugin/bmob/response/bmob_error.dart';
4-
import 'package:data_plugin/bmob/response/bmob_saved.dart';
5-
import 'package:data_plugin/bmob/response/bmob_updated.dart';
62
import 'package:timefly/blocs/habit/habit_event.dart';
73
import 'package:timefly/blocs/habit/habit_state.dart';
4+
import 'package:timefly/db/database_provider.dart';
85
import 'package:timefly/models/habit.dart';
96
import 'package:timefly/models/user.dart';
107

@@ -29,30 +26,7 @@ class HabitsBloc extends Bloc<HabitsEvent, HabitsState> {
2926
yield HabitLoadSuccess([]);
3027
return;
3128
}
32-
BmobQuery<Habit_> habitQuery = BmobQuery();
33-
habitQuery.addWhereEqualTo(
34-
'userId', SessionUtils.sharedInstance().getUserId());
35-
var habitsData = await habitQuery.queryObjects();
36-
37-
BmobQuery<HabitRecord_> recordQuery = BmobQuery();
38-
recordQuery.addWhereEqualTo(
39-
'userId', SessionUtils.sharedInstance().getUserId());
40-
var recordsData = await recordQuery.queryObjects();
41-
42-
List<HabitRecord> records =
43-
recordsData.map((data) => HabitRecord.fromJson(data)).toList();
44-
45-
//merge
46-
List<Habit> habits = habitsData.map((data) {
47-
Habit habit = Habit.fromJson(data);
48-
List<HabitRecord> recordList = [];
49-
for (var value in records) {
50-
if (habit.id == value.habitId) {
51-
recordList.add(value);
52-
}
53-
}
54-
return habit.copyWith(records: recordList);
55-
}).toList();
29+
List<Habit> habits = await DatabaseProvider.db.getAllHabits();
5630
print(habits);
5731
yield HabitLoadSuccess(habits);
5832
} catch (e) {
@@ -63,35 +37,22 @@ class HabitsBloc extends Bloc<HabitsEvent, HabitsState> {
6337

6438
Stream<HabitsState> _mapHabitsAddToState(HabitsAdd habitsAdd) async* {
6539
if (state is HabitLoadSuccess) {
66-
Habit_ _habit = Habit_(habitsAdd.habit);
67-
try {
68-
BmobSaved saved = await _habit.save();
69-
print('habit save success : ${saved.objectId}');
70-
Habit addedHabit = habitsAdd.habit.copyWith(objectId: saved.objectId);
71-
final List<Habit> habits = List.from((state as HabitLoadSuccess).habits)
72-
..add(addedHabit);
73-
yield HabitLoadSuccess(habits);
74-
} catch (e) {
75-
print('habit save error : ${BmobError.convert(e)}');
76-
}
40+
final List<Habit> habits = List.from((state as HabitLoadSuccess).habits)
41+
..add(habitsAdd.habit);
42+
yield HabitLoadSuccess(habits);
43+
DatabaseProvider.db.insert(habitsAdd.habit);
7744
}
7845
}
7946

8047
Stream<HabitsState> _mapHabitUpdateToState(HabitUpdate habitUpdate) async* {
8148
if (state is HabitLoadSuccess) {
82-
Habit_ _habit = Habit_(habitUpdate.habit);
83-
try {
84-
BmobUpdated updated = await _habit.update();
85-
print("habit update success ${updated.updatedAt}");
86-
final List<Habit> habits = (state as HabitLoadSuccess)
87-
.habits
88-
.map((habit) =>
89-
habit.id == habitUpdate.habit.id ? habitUpdate.habit : habit)
90-
.toList();
91-
yield HabitLoadSuccess(habits);
92-
} catch (e) {
93-
print('habit update error : ${BmobError.convert(e)}');
94-
}
49+
final List<Habit> habits = (state as HabitLoadSuccess)
50+
.habits
51+
.map((habit) =>
52+
habit.id == habitUpdate.habit.id ? habitUpdate.habit : habit)
53+
.toList();
54+
yield HabitLoadSuccess(habits);
55+
DatabaseProvider.db.update(habitUpdate.habit);
9556
}
9657
}
9758
}

lib/blocs/record_bloc.dart

Lines changed: 23 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
import 'package:bloc/bloc.dart';
2-
import 'package:data_plugin/bmob/response/bmob_error.dart';
3-
import 'package:data_plugin/bmob/response/bmob_handled.dart';
4-
import 'package:data_plugin/bmob/response/bmob_saved.dart';
5-
import 'package:data_plugin/bmob/response/bmob_updated.dart';
62
import 'package:equatable/equatable.dart';
73
import 'package:timefly/blocs/habit/habit_bloc.dart';
84
import 'package:timefly/blocs/habit/habit_event.dart';
95
import 'package:timefly/blocs/habit/habit_state.dart';
6+
import 'package:timefly/db/database_provider.dart';
107
import 'package:timefly/models/habit.dart';
118

129
class RecordState extends Equatable {
@@ -18,9 +15,8 @@ class RecordState extends Equatable {
1815

1916
class RecordLoadSuccess extends RecordState {
2017
final List<HabitRecord> records;
21-
final bool isAdd;
2218

23-
RecordLoadSuccess(this.records, {this.isAdd = false});
19+
RecordLoadSuccess(this.records);
2420

2521
@override
2622
List<Object> get props => [records];
@@ -61,12 +57,12 @@ class RecordAdd extends RecordEvent {
6157

6258
class RecordDelete extends RecordEvent {
6359
final String habitId;
64-
final HabitRecord record;
60+
final int time;
6561

66-
RecordDelete(this.habitId, this.record);
62+
RecordDelete(this.habitId, this.time);
6763

6864
@override
69-
List<Object> get props => [habitId, record];
65+
List<Object> get props => [habitId, time];
7066
}
7167

7268
///更新
@@ -130,43 +126,34 @@ class RecordBloc extends Bloc<RecordEvent, RecordState> {
130126
}
131127

132128
Stream<RecordState> _mapRecordAddToState(RecordAdd event) async* {
133-
if (state is RecordLoadSuccess) {
134-
HabitRecord_ _habitRecord = HabitRecord_(event.record);
135-
try {
136-
BmobSaved saved = await _habitRecord.save();
137-
print('save record success ${saved.objectId}');
138-
HabitRecord addedRecord =
139-
event.record.copyWith(objectId: saved.objectId);
129+
try {
130+
if (state is RecordLoadSuccess) {
140131
final List<HabitRecord> records =
141132
List.from((state as RecordLoadSuccess).records)
142-
..insert(0, addedRecord);
143-
133+
..insert(0, event.record);
134+
DatabaseProvider.db.insertHabitRecord(event.record);
144135
if (habitsBloc.state is HabitLoadSuccess) {
145136
Habit currentHabit = (habitsBloc.state as HabitLoadSuccess)
146137
.habits
147-
.firstWhere((habit) => habit.id == addedRecord.habitId);
138+
.firstWhere((habit) => habit.id == event.record.habitId);
148139
habitsBloc.add(HabitUpdate(currentHabit.copyWith(
149-
records: List.from(currentHabit.records)..add(addedRecord))));
140+
records: List.from(currentHabit.records)..add(event.record))));
150141
}
151-
yield RecordLoadSuccess(records, isAdd: true);
152-
} catch (e) {
153-
print('save record error : ${BmobError.convert(e)}');
142+
yield RecordLoadSuccess(records);
154143
}
155-
}
144+
} catch (e) {}
156145
}
157146

158147
Stream<RecordState> _mapRecordUpdateToState(RecordUpdate event) async* {
159-
if (state is RecordLoadSuccess) {
160-
HabitRecord_ _habitRecord = HabitRecord_(event.record);
161-
try {
162-
BmobUpdated updated = await _habitRecord.update();
163-
print('update success : ${updated.updatedAt}');
148+
try {
149+
if (state is RecordLoadSuccess) {
164150
final List<HabitRecord> records = (state as RecordLoadSuccess)
165151
.records
166152
.map((record) =>
167153
record.time == event.record.time ? event.record : record)
168154
.toList();
169155
yield RecordLoadSuccess(records);
156+
DatabaseProvider.db.updateHabitRecord(event.record);
170157

171158
if (habitsBloc.state is HabitLoadSuccess) {
172159
Habit currentHabit = (habitsBloc.state as HabitLoadSuccess)
@@ -182,35 +169,28 @@ class RecordBloc extends Bloc<RecordEvent, RecordState> {
182169
habitsBloc.add(
183170
HabitUpdate(currentHabit.copyWith(records: currentHabitRecords)));
184171
}
185-
} catch (e) {
186-
print('update error : ${BmobError.convert(e)}');
187172
}
188-
}
173+
} catch (e) {}
189174
}
190175

191176
Stream<RecordState> _mapRecordDeleteToState(RecordDelete event) async* {
192-
if (state is RecordLoadSuccess) {
193-
HabitRecord_ _habitRecord = HabitRecord_(event.record);
194-
195-
try {
196-
BmobHandled handled = await _habitRecord.delete();
197-
print('delete record success : ${handled.msg}');
177+
try {
178+
if (state is RecordLoadSuccess) {
198179
final List<HabitRecord> records =
199180
List.from((state as RecordLoadSuccess).records)
200-
..removeWhere((record) => record.time == event.record.time);
181+
..removeWhere((record) => record.time == event.time);
201182
yield RecordLoadSuccess(records);
183+
DatabaseProvider.db.deleteHabitRecord(event.habitId, event.time);
202184

203185
if (habitsBloc.state is HabitLoadSuccess) {
204186
Habit currentHabit = (habitsBloc.state as HabitLoadSuccess)
205187
.habits
206188
.firstWhere((habit) => habit.id == event.habitId);
207189
habitsBloc.add(HabitUpdate(currentHabit.copyWith(
208190
records: List.from(currentHabit.records)
209-
..removeWhere((record) => record.time == event.record.time))));
191+
..removeWhere((record) => record.time == event.time))));
210192
}
211-
} catch (e) {
212-
print('delete record error : ${BmobError.convert(e)}');
213193
}
214-
}
194+
} catch (e) {}
215195
}
216196
}

lib/login/login_page.dart

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
11
import 'dart:async';
2-
3-
import 'package:data_plugin/bmob/bmob_sms.dart';
4-
import 'package:data_plugin/bmob/response/bmob_error.dart';
5-
import 'package:data_plugin/bmob/response/bmob_sent.dart';
6-
import 'package:data_plugin/bmob/table/bmob_user.dart';
72
import 'package:flutter/material.dart';
83
import 'package:flutter/services.dart';
94
import 'package:timefly/models/user.dart';
@@ -171,15 +166,7 @@ class _LoginPageState extends State<LoginPage>
171166
if (timer != null && timer.isActive) {
172167
return;
173168
}
174-
BmobSms bmobSms = BmobSms();
175-
bmobSms.template = '';
176-
bmobSms.mobilePhoneNumber = phone;
177-
bmobSms.sendSms().then((BmobSent bmobSent) {
178-
FlashHelper.toast(context, '发送成功');
179-
countDown();
180-
}).catchError((e) {
181-
FlashHelper.toast(context, BmobError.convert(e).error);
182-
});
169+
183170
},
184171
onDoubleTap: () {},
185172
child: Container(
@@ -218,17 +205,7 @@ class _LoginPageState extends State<LoginPage>
218205
)),
219206
child: GestureDetector(
220207
onTap: () {
221-
BmobUser bmobUserRegister = BmobUser();
222-
bmobUserRegister.mobilePhoneNumber = phone;
223-
bmobUserRegister.loginBySms(code).then((BmobUser bmobUser) {
224-
FlashHelper.toast(context, '登录成功');
225-
User user = User(bmobUser.objectId, bmobUser.username,
226-
bmobUser.mobilePhoneNumber);
227-
SessionUtils.sharedInstance().login(user);
228-
Navigator.of(context).pop();
229-
}).catchError((e) {
230-
FlashHelper.toast(context, BmobError.convert(e).error);
231-
});
208+
232209
},
233210
onDoubleTap: () {},
234211
child: Container(

lib/main.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import 'package:data_plugin/bmob/bmob.dart';
21
import 'package:flutter/foundation.dart';
32
import 'package:flutter/material.dart';
43
import 'package:flutter/services.dart';
@@ -20,8 +19,6 @@ void main() async {
2019
Bloc.observer = SimpleBlocObserver();
2120
WidgetsFlutterBinding.ensureInitialized();
2221
NotificationPlugin.ensureInitialized();
23-
Bmob.init("https://api2.bmob.cn", '28009b3f686439f09b5f81da404177fb',
24-
'e9f5e4b15c5b57631d280d0bcd49330d');
2522
await SessionUtils.sharedInstance().init();
2623
await SystemChrome.setPreferredOrientations(<DeviceOrientation>[
2724
DeviceOrientation.portraitUp,

lib/mine/settings_screen.dart

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import 'package:data_plugin/bmob/table/bmob_user.dart';
21
import 'package:flutter/material.dart';
32
import 'package:flutter/services.dart';
43
import 'package:flutter_bloc/flutter_bloc.dart';
@@ -194,14 +193,7 @@ class _ChangeUserInfoViewState extends State<ChangeUserInfoView> {
194193
FlashHelper.toast(context, '请输入名字');
195194
return;
196195
}
197-
User user = SessionUtils.sharedInstance().currentUser;
198-
BmobUser bmobUser = BmobUser();
199-
bmobUser.objectId = user.id;
200-
bmobUser.mobilePhoneNumber = user.phone;
201-
bmobUser.mobilePhoneNumberVerified = true;
202-
bmobUser.username = userName;
203196
try {
204-
await bmobUser.update();
205197
SessionUtils.sharedInstance().updateName(userName);
206198
} catch (e) {
207199
print(e);

lib/models/habit.dart

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import 'dart:convert';
2-
3-
import 'package:data_plugin/bmob/table/bmob_object.dart';
42
import 'package:equatable/equatable.dart';
53

64
///
@@ -59,18 +57,6 @@ class HabitRecord extends Equatable {
5957
}
6058
}
6159

62-
// ignore: camel_case_types
63-
class HabitRecord_ extends BmobObject {
64-
final HabitRecord habitRecord;
65-
66-
HabitRecord_(this.habitRecord);
67-
68-
@override
69-
Map getParams() {
70-
return habitRecord.toJson();
71-
}
72-
}
73-
7460
// ignore: must_be_immutable
7561
class Habit extends Equatable {
7662
///唯一id uuid v4
@@ -285,15 +271,3 @@ class Habit extends Equatable {
285271
userId: userId ?? this.userId);
286272
}
287273
}
288-
289-
// ignore: camel_case_types
290-
class Habit_ extends BmobObject {
291-
final Habit habit;
292-
293-
Habit_(this.habit);
294-
295-
@override
296-
Map getParams() {
297-
return habit.toJson();
298-
}
299-
}

lib/one_day/habit_check_view.dart

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,6 @@ class _HabitCheckViewState extends State<HabitCheckView> {
5252
if (state is RecordLoadSuccess) {
5353
habitRecords = HabitUtil.filterHabitRecordsWithTime(state.records,
5454
start: widget.start, end: widget.end);
55-
if (state.isAdd) {
56-
listKey.currentState
57-
.insertItem(0, duration: const Duration(milliseconds: 500));
58-
}
5955
return Scaffold(
6056
backgroundColor: AppTheme.appTheme.containerBackgroundColor(),
6157
body: Stack(
@@ -119,6 +115,9 @@ class _HabitCheckViewState extends State<HabitCheckView> {
119115
userId: SessionUtils.sharedInstance().getUserId());
120116

121117
BlocProvider.of<RecordBloc>(context).add(RecordAdd(record));
118+
listKey.currentState.insertItem(0,
119+
duration: const Duration(milliseconds: 500));
120+
122121
scrollController.animateTo(0,
123122
duration: Duration(milliseconds: 500),
124123
curve: Curves.fastOutSlowIn);
@@ -269,7 +268,7 @@ class _HabitCheckViewState extends State<HabitCheckView> {
269268

270269
void removeItem(BuildContext context, HabitRecord record) async {
271270
BlocProvider.of<RecordBloc>(context)
272-
.add(RecordDelete(widget.habitId, record));
271+
.add(RecordDelete(widget.habitId, record.time));
273272

274273
int index = habitRecords.indexOf(record);
275274
listKey.currentState.removeItem(

0 commit comments

Comments
 (0)