Skip to content

Commit

Permalink
加解密
Browse files Browse the repository at this point in the history
  • Loading branch information
lyming99 committed Apr 26, 2024
1 parent a904f7e commit bdd651f
Show file tree
Hide file tree
Showing 19 changed files with 1,666 additions and 591 deletions.
249 changes: 6 additions & 243 deletions lib/app/app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,45 +8,16 @@ import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:get/get.dart';
import 'package:go_router/go_router.dart';
import 'package:oktoast/oktoast.dart';
import 'package:wenznote/app/mobile/controller/settings/mobile_settings_controller.dart';
import 'package:wenznote/app/mobile/controller/user/mobile_user_info_controller.dart';
import 'package:wenznote/app/mobile/controller/user/mobile_user_login_controller.dart';
import 'package:wenznote/app/mobile/controller/user/mobile_user_sign_controller.dart';
import 'package:wenznote/app/mobile/view/card/detail/mobile_card_detail_controller.dart';
import 'package:wenznote/app/mobile/view/card/detail/mobile_card_detail_page.dart';
import 'package:wenznote/app/mobile/view/card/edit/mobile_card_edit_controller.dart';
import 'package:wenznote/app/mobile/view/card/mobile_card_page.dart';
import 'package:wenznote/app/mobile/view/card/mobile_card_page_controller.dart';
import 'package:wenznote/app/mobile/view/card/settings/mobile_card_settings_controller.dart';
import 'package:wenznote/app/mobile/view/card/settings/mobile_card_settings_page.dart';
import 'package:wenznote/app/mobile/view/card/study/mobile_study_controller.dart';
import 'package:wenznote/app/mobile/view/card/study/mobile_study_page.dart';
import 'package:wenznote/app/mobile/view/doc/mobile_doc_page.dart';
import 'package:wenznote/app/mobile/view/doc/mobile_doc_page_controller.dart';
import 'package:wenznote/app/mobile/view/edit/doc_edit_controller.dart';
import 'package:wenznote/app/mobile/view/edit/doc_edit_widget.dart';
import 'package:wenznote/app/mobile/view/home/mobile_home_page.dart';
import 'package:wenznote/app/mobile/view/settings/mobile_settings_page.dart';
import 'package:wenznote/app/mobile/view/today/mobile_today_controller.dart';
import 'package:wenznote/app/mobile/view/user/mobile_user_forget_password_page.dart';
import 'package:wenznote/app/mobile/view/user/mobile_user_info_page.dart';
import 'package:wenznote/app/mobile/view/user/mobile_user_sign_page.dart';

import 'package:wenznote/commons/mvc/controller.dart';
import 'package:wenznote/commons/mvc/view.dart';
import 'package:wenznote/commons/widget/ignore_parent_pointer.dart';
import 'package:wenznote/service/service_manager.dart';
import 'package:wenznote/widgets/root_widget.dart';
import 'package:wenznote/widgets/window_border_widget.dart';

import 'mobile/controller/user/mobile_user_forget_password_controller.dart';
import 'mobile/view/today/mobile_today_page.dart';
import 'mobile/view/user/mobile_user_login_page.dart';
import 'windows/controller/home/win_home_controller.dart';
import 'windows/view/export/export_controller.dart';
import 'windows/view/export/export_widget.dart';
import 'windows/view/home/win_home_page.dart';
import 'windows/view/import/import_controller.dart';
import 'windows/view/import/import_widget.dart';

import 'routes/routes.dart';

class AppController extends MvcController {
@override
Expand All @@ -60,224 +31,16 @@ class AppController extends MvcController {
}
}

final GlobalKey<NavigatorState> _appNavigatorKey =
GlobalKey<NavigatorState>(debugLabel: 'app');


class AppWidget extends MvcView<AppController> {
AppWidget({super.key, required super.controller});

static StatefulShellRoute buildHomeRoute() {
return StatefulShellRoute.indexedStack(
builder: (BuildContext context, GoRouterState state,
StatefulNavigationShell navigationShell) {
return MobileHomePage(navigationShell: navigationShell);
},
branches: [
// today
StatefulShellBranch(
routes: <RouteBase>[
GoRoute(
path: 'today',
onExit: (context) async {
return true;
},
builder: (BuildContext context, GoRouterState state) {
return MobileTodayPageWidget(
controller: MobileTodayController());
},
),
],
),
// note
StatefulShellBranch(
routes: <RouteBase>[
GoRoute(
path: 'doc',
onExit: (context) async {
return ServiceManager.of(context).canPop();
},
pageBuilder: (context, state) {
return CustomTransitionPage(
transitionDuration: Duration.zero,
reverseTransitionDuration: Duration.zero,
child: MobileDocPage(controller: MobileDocPageController()),
transitionsBuilder: (BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child) {
return child;
},
);
},
routes: [
GoRoute(
path: "dir/:pid",
pageBuilder: (context, state) {
return CustomTransitionPage(
transitionDuration: Duration.zero,
reverseTransitionDuration: Duration.zero,
child: MobileDocPage(
controller: MobileDocPageController(
pid: state.pathParameters['pid'],
),
),
transitionsBuilder: (BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child) {
return child;
},
);
},
)
],
),
],
),
// card
StatefulShellBranch(
routes: <RouteBase>[
GoRoute(
path: 'card',
builder: (BuildContext context, GoRouterState state) {
return MobileCardPage(controller: MobileCardPageController());
},
),
],
),
],
);
}

final GoRouter _router = GoRouter(
navigatorKey: _appNavigatorKey,
initialLocation:
(Platform.isIOS || Platform.isAndroid) ? "/mobile/today" : "/windows",
routes: [
GoRoute(
path: "/mobile",
redirect: (context, state) {
return null;
},
routes: [
buildHomeRoute(),
GoRoute(
path: "doc/edit",
builder: (context, state) {
var params = state.extra as Map;
return MobileDocEditWidget(
controller: MobileDocEditController(
doc: params['doc'],
editOnOpen: params["editOnOpen"] ?? false,
),
);
},
),
GoRoute(
path: "card/edit",
builder: (context, state) {
var params = state.extra as Map;
return MobileDocEditWidget(
controller: MobileCardEditController(
card: params['card'],
editOnOpen: params['editOnOpen'],
),
);
},
),
GoRoute(
path: "cardSet/:cardSetId",
builder: (context, state) {
return MobileCardDetailPage(
controller: MobileCardDetailController(
cardSetId: state.pathParameters["cardSetId"]),
);
},
),
GoRoute(
path: "cardSet/:cardSetId/settings",
builder: (context, state) {
var map = state.extra as Map;
return MobileCardSettingsPage(
controller:
MobileCardSettingsController(cardSet: map['cardSet']),
);
},
),
GoRoute(
path: "cardSet/:cardSetId/study",
builder: (context, state) {
var map = state.extra as Map;
return MobileStudyPage(
controller: MobileStudyController(cardSet: map['cardSet']),
);
},
),
GoRoute(
path: "login",
builder: (context, state) {
return MobileUserLoginPage(
controller: MobileUserLoginController());
},
),
GoRoute(
path: "sign",
builder: (context, state) {
return MobileUserSignPage(controller: MobileUserSignController());
},
),
GoRoute(
path: "forgetPassword",
builder: (context, state) {
return MobileUserForgetPasswordPage(
controller: MobileUserForgetPasswordController());
},
),
GoRoute(
path: "userInfo",
builder: (context, state) {
return MobileUserInfoPage(controller: MobileUserInfoController());
},
),
GoRoute(
path: "settings",
builder: (context, state) {
return MobileSettingsPage(controller: MobileSettingsController());
},
),
],
),
GoRoute(
path: "/windows",
builder: (context, state) {
return WinHomePage(
controller: WinHomeController(),
);
},
),
GoRoute(
path: "/windows/export",
builder: (context, state) {
return ExportWidget(
controller: ExportController(),
);
},
),
GoRoute(
path: "/windows/import",
builder: (context, state) {
return ImportWidget(
controller: ImportController(),
);
},
),
],
);

@override
Widget build(BuildContext context) {
return ServiceManagerWidget(
router: _router,
router: appRouter,
builder: (context) {
var serviceManager = ServiceManager.of(context);
return OKToast(
Expand All @@ -291,7 +54,7 @@ class AppWidget extends MvcView<AppController> {
}
return MaterialApp.router(
title: "温知笔记",
routerConfig: _router,
routerConfig: appRouter,
debugShowCheckedModeBanner: false,
theme: ThemeData(
// fontFamily: "MiSans",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ class MobileSettingsController extends ServiceManagerController {
if (oldController is MobileSettingsController) {
brightness = oldController.brightness;
fontSize = oldController.fontSize;
savePath = oldController.savePath;
savePathEditController = oldController.savePathEditController;
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import 'package:flutter/material.dart';
import 'package:oktoast/oktoast.dart';
import 'package:rich_clipboard/rich_clipboard.dart';
import 'package:wenznote/commons/mvc/controller.dart';
import 'package:wenznote/service/crypt/crypt_service.dart';
import 'package:wenznote/service/service_manager.dart';

class MobileSyncPasswordSettingsController extends ServiceManagerController {
var pwdInput1Controller = TextEditingController();
var pwdInput2Controller = TextEditingController();

@override
void onInitState(BuildContext context) {
super.onInitState(context);

fetchData();
}

Future<void> fetchData() async {}

@override
void onDidUpdateWidget(BuildContext context, MvcController oldController) {
super.onDidUpdateWidget(context, oldController);
if (oldController is MobileSyncPasswordSettingsController) {}
}

bool get hasPwd => serviceManager.cryptService.hasPassword();

int? get pwdVersion =>
serviceManager.cryptService.getCurrentPassword()?.version;

String? get pwd => serviceManager.cryptService.getCurrentPassword()?.password;

String? get pwdSha256 =>
serviceManager.cryptService.getCurrentPassword()?.sha256;

void copyPwd() {
RichClipboard.setData(RichClipboardData( text: pwd??""));
showToast("复制成功!");
}

String generateRandomPwd() {
return serviceManager.cryptService.generateRandomPassword();
}

String generatePwd(String password) {
return serviceManager.cryptService.generatePassword(password);
}

Future<bool> changePwd(String pwd) async{
return serviceManager.cryptService.changeServerPassword(pwd);
}
}
1 change: 0 additions & 1 deletion lib/app/mobile/view/edit/doc_edit_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,6 @@ class MobileDocEditController extends ServiceManagerController {

void syncNow(BuildContext ctx) async {
printLog("手动同步笔记:${doc?.uuid},${doc?.name}");
await serviceManager.docSyncService.downloadDocFile(doc?.uuid ?? "");
await serviceManager.uploadTaskService.uploadDoc(doc?.uuid ?? "", 0);
}
}
Loading

0 comments on commit bdd651f

Please sign in to comment.