Basic Adaption

- Change Database Dependence from sqflite-comon-ffi to sqflite
This commit is contained in:
Linloir 2022-10-21 23:09:46 +08:00
parent 84672dab75
commit ba452c7fd8
No known key found for this signature in database
GPG Key ID: 58EEB209A0F2C366
2 changed files with 8 additions and 105 deletions

View File

@ -1,53 +1,20 @@
/*
* @Author : Linloir
* @Date : 2022-10-10 08:04:53
* @LastEditTime : 2022-10-20 23:11:45
* @LastEditTime : 2022-10-21 22:49:14
* @Description :
*/
import 'package:easy_debounce/easy_debounce.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
import 'package:tcp_client/home/home_page.dart';
import 'package:tcp_client/initialization/cubit/initialization_cubit.dart';
import 'package:tcp_client/initialization/cubit/initialization_state.dart';
import 'package:tcp_client/initialization/initialization_page.dart';
import 'package:tcp_client/login/login_page.dart';
import 'package:window_manager/window_manager.dart';
void main() async {
sqfliteFfiInit();
//The code below is for desktop platforms only-------------------------
WidgetsFlutterBinding.ensureInitialized();
// Must add this line.
await windowManager.ensureInitialized();
//Get preferred window size
var pref = await SharedPreferences.getInstance();
var width = pref.getDouble('windowWidth');
var height = pref.getDouble('windowHeight');
var posX = pref.getDouble('windowPosX');
var posY = pref.getDouble('windowPosY');
WindowOptions windowOptions = WindowOptions(
size: Size(width ?? 800, height ?? 600),
backgroundColor: Colors.transparent,
skipTaskbar: false,
titleBarStyle: TitleBarStyle.normal
);
await windowManager.waitUntilReadyToShow(windowOptions, () async {
if(posX != null && posY != null) {
await windowManager.setPosition(Offset(posX, posY));
}
await windowManager.show();
await windowManager.focus();
});
//---------------------------------------------------------------------
runApp(const MyApp());
}
@ -58,44 +25,7 @@ class MyApp extends StatefulWidget {
State<MyApp> createState() => MyAppState();
}
class MyAppState extends State<MyApp> with WindowListener {
// This widget is the root of your application.
@override
void initState() {
windowManager.addListener(this);
super.initState();
}
@override
void onWindowMove() {
EasyDebounce.debounce(
'WindowMove',
const Duration(milliseconds: 50),
() async {
var pref = await SharedPreferences.getInstance();
var pos = await windowManager.getPosition();
pref.setDouble('windowPosX', pos.dx);
pref.setDouble('windowPosY', pos.dy);
}
);
super.onWindowMove();
}
@override
void onWindowResize() {
EasyDebounce.debounce(
'WindowResize',
const Duration(milliseconds: 50),
() async {
var pref = await SharedPreferences.getInstance();
var size = await windowManager.getSize();
pref.setDouble('windowWidth', size.width);
pref.setDouble('windowHeight', size.height);
}
);
super.onWindowResize();
}
class MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
@ -119,7 +49,7 @@ class SplashPage extends StatelessWidget {
return BlocProvider<InitializationCubit>(
create: (context) {
return InitializationCubit(
serverAddress: '127.0.0.1',
serverAddress: 'chat.linloir.cn',
serverPort: 20706
);
},

View File

@ -1,27 +1,19 @@
/*
* @Author : Linloir
* @Date : 2022-10-11 10:56:02
* @LastEditTime : 2022-10-20 17:24:26
* @LastEditTime : 2022-10-21 22:47:38
* @Description : Local Service Repository
*/
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:convert/convert.dart';
import 'package:crypto/crypto.dart';
import 'package:file_picker/file_picker.dart';
import 'package:path_provider/path_provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:tcp_client/repositories/common_models/message.dart';
import 'package:tcp_client/repositories/common_models/userinfo.dart';
import 'package:tcp_client/repositories/local_service_repository/models/local_file.dart';
//Windows platform
import 'package:sqflite_common/sqlite_api.dart';
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
//Android platform
// import 'package:sqflite/sqflite.dart';
import 'package:sqflite/sqflite.dart';
class LocalServiceRepository {
late final Database _database;
@ -91,20 +83,11 @@ class LocalServiceRepository {
UserInfo? currentUser,
required String databaseFilePath
}) async {
//Windows platform
var database = await databaseFactoryFfi.openDatabase(
var database = await openDatabase(
databaseFilePath,
options: OpenDatabaseOptions(
version: 1,
onCreate: _onDatabaseCreate
)
);
//Android platform
// var database = await openDatabase(
// databaseFilePath,
// version: 1,
// onCreate: _onDatabaseCreate
// );
return LocalServiceRepository._internal(database: database);
}
@ -116,16 +99,6 @@ class LocalServiceRepository {
);
if (filePickResult == null) return null;
var file = File(filePickResult.files.single.path!);
// var md5Output = AccumulatorSink<Digest>();
// ByteConversionSink md5Input = md5.startChunkedConversion(md5Output);
// await for(var bytes in file.openRead()) {
// md5Input.add(bytes);
// }
// md5Input.close();
// return LocalFile(
// file: file,
// filemd5: md5Output.events.single.toString()
// );
return file;
}