Skip to content

Commit

Permalink
bugfix
Browse files Browse the repository at this point in the history
  • Loading branch information
ChenDoxiu committed May 24, 2024
1 parent 724e353 commit 7046cde
Show file tree
Hide file tree
Showing 22 changed files with 270 additions and 246 deletions.
2 changes: 1 addition & 1 deletion lib/apis/models/note.dart
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ class NotePollModel {

factory NotePollModel.fromMap(Map<String, dynamic> json) => NotePollModel(
choices: List<NotePollModelChoices>.from(
json["choices"].map((x) => NotePollModel.fromMap(x))),
json["choices"]?.map((x) => NotePollModelChoices.fromMap(x))),
expiresAt: json["expiresAt"] == null
? null
: DateTime.parse(json["expiresAt"]),
Expand Down
5 changes: 3 additions & 2 deletions lib/database/notes.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import 'package:flutter/foundation.dart';
import 'package:hive/hive.dart';
import 'package:moekey/apis/models/note.dart';

Expand All @@ -15,14 +16,14 @@ class NotesDatabase {

put(String noteId, NoteModel note) async {
var db = await _getDatabase();
await db.put(noteId, note.toJson());
await db.put(noteId, await compute((note) => note.toJson(), note));
}

Future<NoteModel?> get(String noteId) async {
var db = await _getDatabase();
var res = await db.get(noteId);
if (res != null) {
return NoteModel.fromJson(res);
return compute((res) => NoteModel.fromJson(res), res);
}
return null;
}
Expand Down
24 changes: 8 additions & 16 deletions lib/database/timeline.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'dart:convert';

import 'package:flutter/foundation.dart';
import 'package:hive/hive.dart';
import 'package:moekey/apis/models/note.dart';
import 'package:moekey/database/init_database.dart';
Expand All @@ -19,21 +20,10 @@ class TimelineDatabase {

setTimeline(String name, List<NoteModel> list) async {
var db = await _getDatabase();
db.put("$name-timeline", jsonEncode(List.from(list.map((e) => e.toMap()))));
}

setTimelineScroll(String name, double pos) async {
var db = await _getDatabase();
db.put("$name-timeline-pos", jsonEncode(pos));
}

Future<double> getTimelineScroll(String name) async {
var db = await _getDatabase();
var pos = db.get("$name-timeline-pos");
if (pos == null) {
return 0;
}
return jsonDecode(pos);
db.put(
"$name-timeline",
await compute(
(list) => jsonEncode(List.from(list.map((e) => e.toMap()))), list));
}

cleanTimeline(String name) async {
Expand All @@ -47,7 +37,9 @@ class TimelineDatabase {
if (res == null) {
return null;
}
List list = jsonDecode(res);
List list = await compute((message) {
return jsonDecode(message);
}, res);
return List<NoteModel>.from(list.map((e) => NoteModel.fromMap(e)));
}
}
5 changes: 0 additions & 5 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:hive/hive.dart';
import 'package:hive_flutter/adapters.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:logger/logger.dart';
import 'package:media_kit/media_kit.dart';
Expand All @@ -14,9 +12,6 @@ import 'package:moekey/pages/login/login_page.dart';
import 'package:moekey/status/server.dart';
import 'package:moekey/status/themes.dart';
import 'package:moekey/widgets/loading_weight.dart';
import 'package:path_provider/path_provider.dart';

import 'apis/models/login_user.dart';
import 'generated/l10n.dart';
import 'status/websocket.dart';

Expand Down
1 change: 0 additions & 1 deletion lib/pages/home/home_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:flutter_tabler_icons/flutter_tabler_icons.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:moekey/apis/models/login_user.dart';
import 'package:moekey/pages/home/home_page_state.dart';
import 'package:moekey/pages/users/user_page.dart';
import 'package:moekey/router/main_router_delegate.dart';
Expand Down
6 changes: 1 addition & 5 deletions lib/pages/notes/note_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,14 @@ import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:moekey/status/misskey_api.dart';
import 'package:moekey/status/notes_listener.dart';
import 'package:moekey/status/themes.dart';
import 'package:moekey/status/timeline.dart';
import 'package:moekey/utils/get_padding_note.dart';
import 'package:moekey/widgets/loading_weight.dart';
import 'package:moekey/widgets/mk_header.dart';
import 'package:moekey/widgets/notes/note_children.dart';

import '../../apis/models/note.dart';
import '../../apis/models/translate.dart';
import '../../apis/models/user_lite.dart';
import '../../router/main_router_delegate.dart';
import '../../status/apis.dart';
Expand Down Expand Up @@ -47,7 +44,6 @@ class NotesPage extends HookConsumerWidget {
var noteListener = noteListenerProvider(noteId);
var data = ref.watch(noteListener).valueOrNull;
var conversation = dataProvider.valueOrNull?.conversation ?? [];
NotesListener note = ref.watch(notesListenerProvider.notifier);
return LayoutBuilder(
builder: (context, constraints) {
double padding = getPaddingForNote(constraints);
Expand Down Expand Up @@ -156,7 +152,7 @@ class NotesPage extends HookConsumerWidget {
reply: true,
disableReactions: true,
),
NotesPageNoteCard(data: data!)
NotesPageNoteCard(data: data)
],
),
),
Expand Down
21 changes: 1 addition & 20 deletions lib/pages/timeline/timeline_list.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,9 @@ import 'dart:io';
import 'dart:ui';

import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:implicitly_animated_reorderable_list_2/implicitly_animated_reorderable_list_2.dart';
import 'package:implicitly_animated_reorderable_list_2/transitions.dart';
import 'package:moekey/main.dart';
import 'package:moekey/status/themes.dart';
import 'package:moekey/status/timeline.dart';
import 'package:moekey/utils/get_padding_note.dart';
Expand All @@ -32,8 +30,6 @@ class TimeLineListPage extends HookConsumerWidget {
var data = ref.watch(dataProvider);

var themes = ref.watch(themeColorsProvider);
var scroll =
useFuture(ref.watch(timelineScrollOffsetProvider(api: api).future));
return LayoutBuilder(
builder: (context, constraints) {
double padding = getPaddingForNote(constraints);
Expand All @@ -51,30 +47,15 @@ class TimeLineListPage extends HookConsumerWidget {
},
),
child: LoadingAndEmpty(
loading: data.isLoading ||
scroll.connectionState == ConnectionState.waiting,
loading: data.isLoading,
empty: data.valueOrNull?.isEmpty ?? true,
refresh: () async {
await ref.read(dataProvider.notifier).cleanCache();
return await ref.refresh(dataProvider.future);
},
child: HookConsumer(
builder: (context, ref, child) {
var controller = useScrollController(
initialScrollOffset: scroll.data ?? 0);

useEffect(() {
scrollListener() {
var scroll = ref.read(
timelineScrollOffsetProvider(api: api).notifier);
scroll.updateScroll(controller.offset);
}

controller.addListener(scrollListener);
return () => controller.removeListener(scrollListener);
}, [api]);
return CustomScrollView(
controller: controller,
cacheExtent:
(Platform.isAndroid || Platform.isIOS) ? null : 4000,
// controller: scrollController,
Expand Down
1 change: 0 additions & 1 deletion lib/pages/timeline/timeline_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ class TimelinePage extends HookConsumerWidget {
Widget build(BuildContext context, WidgetRef ref) {
var pageController = usePageController();
var tabController = useTabController(initialLength: navItemList.length);
var themes = ref.watch(themeColorsProvider);
var currentIndex = useState(0);
return MkScaffold(
header: MkAppbar(
Expand Down
2 changes: 1 addition & 1 deletion lib/pages/users/user_notes_list.dart
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class UserNotesPage extends HookConsumerWidget {
key: 1,
);
var data = ref.watch(dataProvider);
print(data.error);

return LayoutBuilder(
builder: (context, constraints) {
double padding = getPaddingForNote(constraints);
Expand Down
2 changes: 0 additions & 2 deletions lib/pages/users/user_reactions_list.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ class UserReactionsPage extends HookConsumerWidget {
userId: userId,
);
var data = ref.watch(dataProvider);
print(data.error);
print(data.stackTrace);
return LayoutBuilder(
builder: (context, constraints) {
double padding = 0;
Expand Down
5 changes: 3 additions & 2 deletions lib/status/apis.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'dart:convert';
import 'package:flutter/services.dart';
import 'package:moekey/apis/models/meta.dart';
import 'package:moekey/apis/models/note.dart';
import 'package:moekey/main.dart';
import 'package:moekey/status/server.dart';
import 'package:moekey/status/themes.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
Expand Down Expand Up @@ -63,8 +64,8 @@ Future<List<EmojiSimple>> apiEmojisList(ApiEmojisListRef ref) async {

return emojis;
} catch (e, t) {
print(e);
print(t);
logger.e(e);
logger.e(t);
}
return [];
}
Expand Down
5 changes: 3 additions & 2 deletions lib/status/notifications.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:moekey/apis/models/notification.dart';
import 'package:moekey/main.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';

import '../apis/models/note.dart';
Expand All @@ -24,8 +25,8 @@ class Notifications extends _$Notifications {
var res = await apis.account.notificationsGrouped(untilId: untilId);
return res;
} catch (e, s) {
print(e);
print(s);
logger.e(e);
logger.e(s);
} finally {
loading = false;
}
Expand Down
1 change: 0 additions & 1 deletion lib/status/themes.dart
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,6 @@ class Themes extends _$Themes {
// !colors.isDark ? Brightness.dark : Brightness.light,
// systemNavigationBarContrastEnforced: false),
// );
String? font;
return ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: colors.accentColor).copyWith(
surface: colors.bgColor,
Expand Down
14 changes: 0 additions & 14 deletions lib/status/timeline.dart
Original file line number Diff line number Diff line change
Expand Up @@ -63,17 +63,3 @@ class Timeline extends _$Timeline {
await db.cleanTimeline(api);
}
}

@riverpod
class TimelineScrollOffset extends _$TimelineScrollOffset {
@override
FutureOr<double> build({String api = "timeline"}) async {
var db = await ref.watch(timelineDatabaseProvider.future);
return db.getTimelineScroll(api);
}

updateScroll(double pos) async {
var db = await ref.read(timelineDatabaseProvider.future);
db.setTimelineScroll(api, pos);
}
}
3 changes: 0 additions & 3 deletions lib/utils/save_image.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ Future<bool> saveImage({
required String url,
String album = "moekey",
}) async {
print(url);
var name = basename(url);
var ext = extension(name);
var fileBasename = basenameWithoutExtension(name);
Expand All @@ -28,8 +27,6 @@ Future<bool> saveImage({

var codec = await ui.instantiateImageCodec(data);



if (Platform.isWindows || Platform.isLinux || Platform.isMacOS) {
// webp 单帧图片转换成png
if (ext.toLowerCase().contains("webp") && codec.frameCount == 1) {
Expand Down
2 changes: 0 additions & 2 deletions lib/widgets/context_menu.dart
Original file line number Diff line number Diff line change
Expand Up @@ -98,15 +98,13 @@ class ContextMenuBuilderState extends ConsumerState<ContextMenuBuilder>
}

showBottomSheet() {
print(context.hashCode);
showModalBottomSheet(
context: context,
backgroundColor: Colors.transparent,
elevation: 0,
useRootNavigator: true,
isScrollControlled: true,
builder: (context) {
print(this.context.hashCode);
return ContextDraggableBottomSheet(menu: widget.menu);
},
);
Expand Down
1 change: 0 additions & 1 deletion lib/widgets/driver/drive.dart
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,6 @@ class DriveList extends _$DriveList {
}

loadMore() async {
print("load");
if (state.isLoading) return;
state = const AsyncLoading();
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import 'package:moekey/widgets/context_menu.dart';
import 'package:moekey/widgets/driver/driver_select_dialog/driver_select_dialog_state.dart';
import 'package:moekey/widgets/driver/upload_file_dialog.dart';

import '../../../apis/models/drive.dart';
import '../../../main.dart';
import '../../mk_card.dart';
import '../../mk_switch.dart';
Expand Down
1 change: 0 additions & 1 deletion lib/widgets/login/servers_select.dart
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ class ServersSelectCard extends HookConsumerWidget {
Widget build(BuildContext context, WidgetRef ref) {
var themes = ref.watch(themeColorsProvider);
var list = ref.watch(instanceListStateProvider);
print(list.error);
var url = useState("");
var filterList = instanceListFilter(list.valueOrNull ?? [], url.value);
return MkCard(
Expand Down
1 change: 0 additions & 1 deletion lib/widgets/mk_sliver_pinned.dart
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@ class RenderSliverFixedHeader extends RenderSliverSingleBoxAdapter {
origin = _pinnedOffset - topOffset;
}
final paintExtent = min(constraints.remainingPaintExtent, origin);
print(paintExtent);
// 2.上报当前节点的布局信息给 viewport
geometry = SliverGeometry(
// visible: paintExtent > 0.0
Expand Down
Loading

0 comments on commit 7046cde

Please sign in to comment.