Compare commits

..

2 Commits

Author SHA1 Message Date
7d391194f5 - séparation des taches faite et non,
- rapettisage de la taille des taches
2023-10-10 20:20:27 +02:00
979fcfa2a1 hive implementation
save todo in hive
first release
2023-09-29 11:22:28 +02:00
15 changed files with 754 additions and 122 deletions

1
.gitignore vendored
View File

@@ -32,7 +32,6 @@
/build/
# Web related
lib/generated_plugin_registrant.dart
# Symbolication related
app.*.symbols

View File

@@ -21,6 +21,12 @@ if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
@@ -43,18 +49,41 @@ android {
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.todo"
applicationId "com.kaelstudio.todo"
minSdkVersion flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
ndk {
debugSymbolLevel 'FULL'
}
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
ndk {
debugSymbolLevel 'FULL'
}
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile(
'proguard-android-optimize.txt'),
'proguard-rules.pro'
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
}
}

View File

@@ -1,12 +1,12 @@
buildscript {
ext.kotlin_version = '1.3.50'
ext.kotlin_version = '1.6.0'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath 'com.android.tools.build:gradle:7.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
@@ -26,6 +26,6 @@ subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
tasks.register("clean", Delete) {
delete rootProject.buildDir
}

View File

@@ -3,4 +3,5 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip
org.gradle.jvmargs=-Xmx1536M --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED

21
deployment_cert.der Normal file
View File

@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDizCCAnOgAwIBAgIELKNhuDANBgkqhkiG9w0BAQsFADB1MQswCQYDVQQGEwJm
cjETMBEGA1UECBMKdmFsIGQnb2lzZTEYMBYGA1UEBxMPdmlsbGllcnMgbGUgYmVs
MRMwEQYDVQQKEwprYWVsc3R1ZGlvMRMwEQYDVQQLEwprYWVsc3R1ZGlvMQ0wCwYD
VQQDEwRrYWVsMCAXDTIzMDkyOTE2MTcwM1oYDzIwNTEwMjE0MTYxNzAzWjB1MQsw
CQYDVQQGEwJmcjETMBEGA1UECBMKdmFsIGQnb2lzZTEYMBYGA1UEBxMPdmlsbGll
cnMgbGUgYmVsMRMwEQYDVQQKEhttps://developer.android.com/studio/publish/app-signing?hl=frwprYWVsc3R1ZGlvMRMwEQYDVQQLEwprYWVsc3R1
ZGlvMQ0wCwYDVQQDEwRrYWVsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAhdixS6ZRPbsJFZX19VwZVCYZMcNgPHOmCHm1F/08ULTEzHImjCswgZhgfLey
oB5h9vgOFXw8nzlj9/8/RnQMhUNv90rL28aRpG4qOqkpnKztjCA2rrcaYuXA3l82
3IQFO1FUKIZ2FnAL8h1P31OvBrAOTbgdKeOAClYF0h5NvYfQAeBYayKpQz2cQQ5C
K5nX3HbBeTIw3z6nQHnY85DA2BJPclR3ZBPGPppDbNFos6TSZpQk9Ro5Dk8NbKRY
J8B0aFY6VMTz3danpdZvK9oJQ2KK/EiX9UoRxjIykexxF5C5U2szoEQmHwKkcOMO
hIW91qFhH7ymHvByz/HI/29gDQIDAQABoyEwHzAdBgNVHQ4EFgQUTzO7LFDHBN8a
4YFu/sWgXgvBpdcwDQYJKoZIhvcNAQELBQADggEBAGYargwG85QwN6TWAuiV3gjs
/F2Axoe2rMYkg4mqh53M0qbqOZagY5cCzOShTe7wnd5+VXZ1yYr3M/PliGbzXald
gf8LpJb8LvpR8z3/EcO9FnsJAREncU4DYIzUynzfReAekOPizP4yL0XBPChf6jtk
C5EkFm0u2vAMgHkt6pGsWGynvPi/S8JILb09uyye5xBtBrTB8j0MIJ85/3Qfv8t0
7x+KDkQ7qx9tu17PM+rF+XO9O0h4/giWsZJmVXIR/DBDNhXy+8RaqWKOjgLgG4vo
Q3tCtivp7ywDmSIQRgk2N8heLgRFJZb/3TB8kHTnUQqG9i8pemeAgXRRmqhyByo=
-----END CERTIFICATE-----

27
lib/data/database.dart Normal file
View File

@@ -0,0 +1,27 @@
import 'package:hive_flutter/hive_flutter.dart';
class ToDoDataBase {
List todoList = [];
//reference hive todo box
final _myBox = Hive.box('todoBox');
//init db
void createInitialData() {
todoList = [
["Make Tutorial", true],
["Buy car", false],
["Buy new wife", true],
["buy card", false],
];
}
//load data
void loadData() {
todoList = _myBox.get('todos');
}
void updateData() {
_myBox.put('todos', todoList);
}
}

View File

@@ -1,8 +1,13 @@
import 'package:flutter/material.dart';
import 'package:todo/utils/dialog_box.dart';
import 'package:todo/utils/todo_tile.dart';
import 'package:todo/pages/home_page.dart';
import 'package:hive_flutter/hive_flutter.dart';
void main() async {
//init hive
await Hive.initFlutter();
//open the box
await Hive.openBox('todoBox');
void main() {
runApp(const MyApp());
}
@@ -18,79 +23,12 @@ class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Todo',
title: 'Tody',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.red,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final _controller = TextEditingController();
List todoList = [
["Make Tutorial", true],
["Buy car", false],
["Buy new wife", true],
["buy card", false],
];
void checkBoxChanged(bool? value, int index) {
setState(() {
todoList[index][1] = !todoList[index][1];
});
}
void saveNewTask() {
setState(() {
todoList.add([_controller.text, false]);
_controller.clear();
});
Navigator.of(context).pop();
}
void createNewTask() {
showDialog(
context: context,
builder: (context) {
return DialogBox(
controller: _controller,
onCancel: () => Navigator.of(context).pop(),
onSave: saveNewTask,
);
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: ListView.builder(
itemCount: todoList.length,
itemBuilder: (context, index) {
return ToDoTile(
taskName: todoList[index][0],
taskCompleted: todoList[index][1],
onChanged: (value) => checkBoxChanged(value, index),
);
}),
floatingActionButton: FloatingActionButton(
onPressed: createNewTask,
tooltip: 'Increment',
child: const Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
home: const MyHomePage(title: 'Tody'),
);
}
}

120
lib/pages/home_page.dart Normal file
View File

@@ -0,0 +1,120 @@
import 'package:flutter/material.dart';
import 'package:todo/data/database.dart';
import 'package:todo/utils/dialog_box.dart';
import 'package:todo/utils/todo_tile.dart';
import 'package:hive_flutter/hive_flutter.dart';
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
//reference hive todo box
final _myBox = Hive.box('todoBox');
ToDoDataBase db = ToDoDataBase();
final _controller = TextEditingController();
@override
void initState() {
// first time
if (_myBox.get('todos') == null) {
db.createInitialData();
} else {
db.loadData();
}
super.initState();
}
void checkBoxChanged(bool? value, int index) {
setState(() {
db.todoList[index][1] = !db.todoList[index][1];
});
db.updateData();
}
void saveNewTask() {
setState(() {
db.todoList.add([_controller.text, false]);
_controller.clear();
});
db.updateData();
Navigator.of(context).pop();
}
void createNewTask() {
showDialog(
context: context,
builder: (context) {
return DialogBox(
controller: _controller,
onCancel: () => Navigator.of(context).pop(),
onSave: saveNewTask,
);
});
}
void deleteTask(int index) {
setState(() {
db.todoList.removeAt(index);
});
db.updateData();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
centerTitle: true,
),
body: Column(
children: [
Expanded(
child: ListView.builder(
itemCount: db.todoList.length,
itemBuilder: (context, index) {
return db.todoList[index][1] == false
? ToDoTile(
taskName: db.todoList[index][0],
taskCompleted: db.todoList[index][1],
onChanged: (value) => checkBoxChanged(value, index),
deleteFunction: (context) => deleteTask(index),
)
: SizedBox.shrink();
}),
),
Text(
"Tache complété : ${db.todoList.where((element) => element[1] == true).length}"),
//task completed
Expanded(
child: ListView.builder(
itemCount: db.todoList.length,
itemBuilder: (context, index) {
return db.todoList[index][1] == true
? ToDoTile(
taskName: db.todoList[index][0],
taskCompleted: db.todoList[index][1],
onChanged: (value) => checkBoxChanged(value, index),
deleteFunction: (context) => deleteTask(index),
)
: Container();
}),
),
],
),
floatingActionButton: FloatingActionButton(
onPressed: createNewTask,
tooltip: 'Increment',
child: const Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
}

View File

@@ -2,39 +2,54 @@ import 'package:flutter/material.dart';
import 'package:todo/utils/my_button.dart';
class DialogBox extends StatelessWidget {
DialogBox(
const DialogBox(
{Key? key,
required this.controller,
required this.onSave,
required this.onCancel})
: super(key: key);
final controller;
VoidCallback onSave;
VoidCallback onCancel;
final TextEditingController controller;
final VoidCallback onSave;
final VoidCallback onCancel;
@override
Widget build(BuildContext context) {
return AlertDialog(
backgroundColor: Theme.of(context).primaryColor,
title: Text("New Task"),
content: Container(
title: const Text(
"Nouvelle tache",
style: TextStyle(color: Colors.white),
),
content: SizedBox(
height: 120,
child: Column(
children: [
TextField(
controller: controller,
decoration: InputDecoration(
border: OutlineInputBorder(), hintText: "Add new task"),
autofocus: true,
style: const TextStyle(color: Colors.white),
decoration: const InputDecoration(
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.white),
),
SizedBox(
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.white),
),
border: OutlineInputBorder(
gapPadding: 4, borderSide: BorderSide(color: Colors.white)),
hintText: "Ajouter une tache",
hintStyle: TextStyle(color: Colors.white),
),
),
const SizedBox(
height: 40,
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
MyButton(text: "Cancel", onPressed: onCancel),
MyButton(text: "Save", onPressed: onSave),
MyButton(text: "Annuler", onPressed: onCancel),
MyButton(text: "Sauvegarder", onPressed: onSave),
],
)
],

View File

@@ -1,18 +1,18 @@
import 'package:flutter/material.dart';
class MyButton extends StatelessWidget {
MyButton({Key? key, required this.text, required this.onPressed})
const MyButton({Key? key, required this.text, required this.onPressed})
: super(key: key);
final String text;
VoidCallback onPressed;
final VoidCallback onPressed;
@override
Widget build(BuildContext context) {
return MaterialButton(
onPressed: onPressed,
color: Theme.of(context).primaryColor,
child: Text(text),
child: Text(text, style: const TextStyle(color: Colors.white)),
);
}
}

View File

@@ -1,29 +1,45 @@
import 'package:flutter/material.dart';
import 'package:flutter_slidable/flutter_slidable.dart';
class ToDoTile extends StatelessWidget {
const ToDoTile(
{Key? key,
required this.taskName,
required this.taskCompleted,
required this.onChanged})
required this.onChanged,
required this.deleteFunction})
: super(key: key);
final String taskName;
final bool taskCompleted;
final Function(bool?)? onChanged;
final Function(BuildContext)? deleteFunction;
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.fromLTRB(25.0, 25, 25, 0),
padding: const EdgeInsets.fromLTRB(15.0, 15, 15, 0),
child: Slidable(
endActionPane: ActionPane(
motion: const StretchMotion(),
children: [
SlidableAction(
onPressed: deleteFunction,
icon: Icons.delete,
backgroundColor: Color.fromARGB(255, 249, 137, 135),
borderRadius: BorderRadius.circular(12),
)
],
),
child: Container(
padding: EdgeInsets.all(24.0),
padding: const EdgeInsets.all(10.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
taskName,
style: TextStyle(
color: Colors.white,
decoration: taskCompleted
? TextDecoration.lineThrough
: TextDecoration.none),
@@ -31,15 +47,23 @@ class ToDoTile extends StatelessWidget {
Checkbox(
value: taskCompleted,
onChanged: onChanged,
activeColor: Colors.redAccent,
side:
MaterialStateBorderSide.resolveWith((states) => BorderSide(
width: 2,
color: Colors.white,
)),
focusColor: Colors.white,
checkColor: Colors.white,
activeColor: taskCompleted ? Colors.grey : Colors.redAccent,
)
],
),
decoration: BoxDecoration(
color: Theme.of(context).primaryColor,
color: taskCompleted ? Colors.grey : Theme.of(context).primaryColor,
borderRadius: BorderRadius.circular(10.0),
),
),
),
);
}
}

View File

@@ -1,6 +1,30 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
_fe_analyzer_shared:
dependency: transitive
description:
name: _fe_analyzer_shared
sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8"
url: "https://pub.dev"
source: hosted
version: "47.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80"
url: "https://pub.dev"
source: hosted
version: "4.7.0"
args:
dependency: transitive
description:
name: args
sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596
url: "https://pub.dev"
source: hosted
version: "2.4.2"
async:
dependency: transitive
description:
@@ -17,6 +41,70 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.1"
build:
dependency: transitive
description:
name: build
sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
build_config:
dependency: transitive
description:
name: build_config
sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1
url: "https://pub.dev"
source: hosted
version: "1.1.1"
build_daemon:
dependency: transitive
description:
name: build_daemon
sha256: "5f02d73eb2ba16483e693f80bee4f088563a820e47d1027d4cdfe62b5bb43e65"
url: "https://pub.dev"
source: hosted
version: "4.0.0"
build_resolvers:
dependency: transitive
description:
name: build_resolvers
sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6"
url: "https://pub.dev"
source: hosted
version: "2.0.10"
build_runner:
dependency: "direct dev"
description:
name: build_runner
sha256: "10c6bcdbf9d049a0b666702cf1cee4ddfdc38f02a19d35ae392863b47519848b"
url: "https://pub.dev"
source: hosted
version: "2.4.6"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
sha256: "6d6ee4276b1c5f34f21fdf39425202712d2be82019983d52f351c94aafbc2c41"
url: "https://pub.dev"
source: hosted
version: "7.2.10"
built_collection:
dependency: transitive
description:
name: built_collection
sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100"
url: "https://pub.dev"
source: hosted
version: "5.1.1"
built_value:
dependency: transitive
description:
name: built_value
sha256: a8de5955205b4d1dbbbc267daddf2178bd737e4bab8987c04a500478c9651e74
url: "https://pub.dev"
source: hosted
version: "8.6.3"
characters:
dependency: transitive
description:
@@ -25,6 +113,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.3.0"
checked_yaml:
dependency: transitive
description:
name: checked_yaml
sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff
url: "https://pub.dev"
source: hosted
version: "2.0.3"
clock:
dependency: transitive
description:
@@ -33,6 +129,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.1.1"
code_builder:
dependency: transitive
description:
name: code_builder
sha256: "1be9be30396d7e4c0db42c35ea6ccd7cc6a1e19916b5dc64d6ac216b5544d677"
url: "https://pub.dev"
source: hosted
version: "4.7.0"
collection:
dependency: transitive
description:
@@ -41,6 +145,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.17.2"
convert:
dependency: transitive
description:
name: convert
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
url: "https://pub.dev"
source: hosted
version: "3.1.1"
crypto:
dependency: transitive
description:
name: crypto
sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
url: "https://pub.dev"
source: hosted
version: "3.0.3"
cupertino_icons:
dependency: "direct main"
description:
@@ -49,6 +169,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.4"
dart_style:
dependency: transitive
description:
name: dart_style
sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4"
url: "https://pub.dev"
source: hosted
version: "2.2.4"
fake_async:
dependency: transitive
description:
@@ -57,6 +185,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.3.1"
ffi:
dependency: transitive
description:
name: ffi
sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
file:
dependency: transitive
description:
name: file
sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
url: "https://pub.dev"
source: hosted
version: "7.0.0"
fixnum:
dependency: transitive
description:
name: fixnum
sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
flutter:
dependency: "direct main"
description: flutter
@@ -70,11 +222,107 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.4"
flutter_slidable:
dependency: "direct main"
description:
name: flutter_slidable
sha256: "90787334388211e6810065550119b015e6fd3893584641194d500bf5bc7e6235"
url: "https://pub.dev"
source: hosted
version: "1.3.2"
flutter_test:
dependency: "direct dev"
description: flutter
source: sdk
version: "0.0.0"
frontend_server_client:
dependency: transitive
description:
name: frontend_server_client
sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612"
url: "https://pub.dev"
source: hosted
version: "3.2.0"
glob:
dependency: transitive
description:
name: glob
sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
graphs:
dependency: transitive
description:
name: graphs
sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19
url: "https://pub.dev"
source: hosted
version: "2.3.1"
hive:
dependency: "direct main"
description:
name: hive
sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941"
url: "https://pub.dev"
source: hosted
version: "2.2.3"
hive_flutter:
dependency: "direct main"
description:
name: hive_flutter
sha256: dca1da446b1d808a51689fb5d0c6c9510c0a2ba01e22805d492c73b68e33eecc
url: "https://pub.dev"
source: hosted
version: "1.1.0"
hive_generator:
dependency: "direct dev"
description:
name: hive_generator
sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938"
url: "https://pub.dev"
source: hosted
version: "1.1.3"
http_multi_server:
dependency: transitive
description:
name: http_multi_server
sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
url: "https://pub.dev"
source: hosted
version: "3.2.1"
http_parser:
dependency: transitive
description:
name: http_parser
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted
version: "4.0.2"
io:
dependency: transitive
description:
name: io
sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
url: "https://pub.dev"
source: hosted
version: "1.0.4"
js:
dependency: transitive
description:
name: js
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted
version: "0.6.7"
json_annotation:
dependency: transitive
description:
name: json_annotation
sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467
url: "https://pub.dev"
source: hosted
version: "4.8.1"
lints:
dependency: transitive
description:
@@ -83,6 +331,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.1"
logging:
dependency: transitive
description:
name: logging
sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340"
url: "https://pub.dev"
source: hosted
version: "1.2.0"
matcher:
dependency: transitive
description:
@@ -107,6 +363,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.9.1"
mime:
dependency: transitive
description:
name: mime
sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
url: "https://pub.dev"
source: hosted
version: "1.0.4"
package_config:
dependency: transitive
description:
name: package_config
sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
path:
dependency: transitive
description:
@@ -115,11 +387,131 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.8.3"
path_provider:
dependency: transitive
description:
name: path_provider
sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa
url: "https://pub.dev"
source: hosted
version: "2.1.1"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
sha256: "6b8b19bd80da4f11ce91b2d1fb931f3006911477cec227cce23d3253d80df3f1"
url: "https://pub.dev"
source: hosted
version: "2.2.0"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d"
url: "https://pub.dev"
source: hosted
version: "2.3.1"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
url: "https://pub.dev"
source: hosted
version: "2.2.1"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170"
url: "https://pub.dev"
source: hosted
version: "2.2.1"
platform:
dependency: transitive
description:
name: platform
sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102
url: "https://pub.dev"
source: hosted
version: "3.1.2"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
sha256: da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d
url: "https://pub.dev"
source: hosted
version: "2.1.6"
pool:
dependency: transitive
description:
name: pool
sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
url: "https://pub.dev"
source: hosted
version: "1.5.1"
pub_semver:
dependency: transitive
description:
name: pub_semver
sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
pubspec_parse:
dependency: transitive
description:
name: pubspec_parse
sha256: c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367
url: "https://pub.dev"
source: hosted
version: "1.2.3"
shelf:
dependency: transitive
description:
name: shelf
sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4
url: "https://pub.dev"
source: hosted
version: "1.4.1"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1"
url: "https://pub.dev"
source: hosted
version: "1.0.4"
sky_engine:
dependency: transitive
description: flutter
source: sdk
version: "0.0.99"
source_gen:
dependency: transitive
description:
name: source_gen
sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d"
url: "https://pub.dev"
source: hosted
version: "1.2.6"
source_helper:
dependency: transitive
description:
name: source_helper
sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f"
url: "https://pub.dev"
source: hosted
version: "1.3.3"
source_span:
dependency: transitive
description:
@@ -144,6 +536,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.1"
stream_transform:
dependency: transitive
description:
name: stream_transform
sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
string_scanner:
dependency: transitive
description:
@@ -168,6 +568,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.6.0"
timing:
dependency: transitive
description:
name: timing
sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32"
url: "https://pub.dev"
source: hosted
version: "1.0.1"
typed_data:
dependency: transitive
description:
name: typed_data
sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
url: "https://pub.dev"
source: hosted
version: "1.3.2"
vector_math:
dependency: transitive
description:
@@ -176,6 +592,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.4"
watcher:
dependency: transitive
description:
name: watcher
sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
web:
dependency: transitive
description:
@@ -184,5 +608,38 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.1.4-beta"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b
url: "https://pub.dev"
source: hosted
version: "2.4.0"
win32:
dependency: transitive
description:
name: win32
sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3"
url: "https://pub.dev"
source: hosted
version: "5.0.9"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2"
url: "https://pub.dev"
source: hosted
version: "1.0.3"
yaml:
dependency: transitive
description:
name: yaml
sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5"
url: "https://pub.dev"
source: hosted
version: "3.1.2"
sdks:
dart: ">=3.1.0-185.0.dev <4.0.0"
flutter: ">=3.7.0"

View File

@@ -3,7 +3,7 @@ description: A new Flutter project.
# The following line prevents the package from being accidentally published to
# pub.dev using `flutter pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
publish_to: "none" # Remove this line if you wish to publish to pub.dev
# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
@@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1
version: 1.0.1+11
environment:
sdk: ">=2.15.1 <3.0.0"
@@ -29,16 +29,18 @@ environment:
dependencies:
flutter:
sdk: flutter
hive: ^2.2.3
hive_flutter: ^1.1.0
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
flutter_slidable: ^1.2.0
dev_dependencies:
flutter_test:
sdk: flutter
hive_generator: ^1.1.3
build_runner: ^2.1.11
# The "flutter_lints" package below contains a set of recommended lints to
# encourage good coding practices. The lint set provided by the package is
# activated in the `analysis_options.yaml` file located at the root of your
@@ -51,7 +53,6 @@ dev_dependencies:
# The following section is specific to Flutter.
flutter:
# The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in
# the material Icons class.

BIN
upload-keystore.jks Normal file

Binary file not shown.

BIN
upload-keystore.jks.old Normal file

Binary file not shown.