diff --git a/.gitignore b/.gitignore
index 24476c5..065dc2c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,6 +31,7 @@ migrate_working_dir/
.pub-cache/
.pub/
/build/
+pubspec.lock
# Symbolication related
app.*.symbols
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index c5439ff..752ea03 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -3,9 +3,9 @@
+ android:icon="@mipmap/launcher_icon">
CFBundleDevelopmentRegion
$(DEVELOPMENT_LANGUAGE)
CFBundleDisplayName
- Smoke Cess App
+ ZI SmokeFree
CFBundleExecutable
$(EXECUTABLE_NAME)
CFBundleIdentifier
@@ -15,7 +15,7 @@
CFBundleInfoDictionaryVersion
6.0
CFBundleName
- smoke_cess_app
+ ZI SmokeFree
CFBundlePackageType
APPL
CFBundleShortVersionString
diff --git a/lib/pages/interval_page.dart b/lib/pages/interval_page.dart
index 5117a8d..2326168 100644
--- a/lib/pages/interval_page.dart
+++ b/lib/pages/interval_page.dart
@@ -10,7 +10,7 @@ class IntervalTimerPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
- return const ViewFormPage(
- form: WorkoutForm(), view: WorkoutView(), page: Pages.timer);
+ return ViewFormPage(
+ form: WorkoutForm(), view: const WorkoutView(), page: Pages.timer);
}
}
diff --git a/lib/providers/audio_provider.dart b/lib/providers/audio_provider.dart
new file mode 100644
index 0000000..a141cb2
--- /dev/null
+++ b/lib/providers/audio_provider.dart
@@ -0,0 +1,47 @@
+import 'dart:async';
+
+import 'package:audioplayers/audioplayers.dart';
+import 'package:flutter/cupertino.dart';
+
+class AudioProvider extends ChangeNotifier {
+ final AudioPlayer _audioPlayer = AudioPlayer();
+ bool _isMuted = false;
+ final Source _finishedSoundSource = AssetSource('finish.mp3');
+ final Source _beepSoundSource = AssetSource('beep.mp3');
+ StreamSubscription? _onCompleteSubscription;
+
+ bool get isMuted => _isMuted;
+
+ void stop() => _resetPlayer();
+
+ void playFinishSound() {
+ _resetPlayer();
+ _audioPlayer.play(_finishedSoundSource);
+ }
+
+ void mutePlayer() {
+ _isMuted = true;
+ _audioPlayer.setVolume(0);
+ notifyListeners();
+ }
+
+ void unMutePlayer() {
+ _isMuted = false;
+ _audioPlayer.setVolume(1);
+ notifyListeners();
+ }
+
+ //resets player position and delete listening subscription
+ void _resetPlayer() {
+ _audioPlayer.stop();
+ _onCompleteSubscription?.cancel();
+ }
+
+ void playSourceAfterBeep(AssetSource source) {
+ _resetPlayer();
+ _audioPlayer.play(_beepSoundSource);
+ _onCompleteSubscription = _audioPlayer.onPlayerComplete.listen((event) {
+ _audioPlayer.play(source);
+ });
+ }
+}
diff --git a/lib/providers/workout_provider.dart b/lib/providers/workout_provider.dart
index 15ff39a..067ebcb 100644
--- a/lib/providers/workout_provider.dart
+++ b/lib/providers/workout_provider.dart
@@ -1,38 +1,20 @@
-import 'dart:async';
-
import 'package:audioplayers/audioplayers.dart';
import 'package:flutter/material.dart';
import 'package:smoke_cess_app/models/workout.dart';
+import 'package:smoke_cess_app/providers/audio_provider.dart';
import 'package:smoke_cess_app/providers/timer_provider.dart';
import '../globals.dart' as globals;
class WorkoutProvider extends ChangeNotifier {
- TimerProvider timerProvider;
+ final TimerProvider timerProvider;
+ final AudioProvider audioProvider;
- final AudioPlayer _audioPlayer = AudioPlayer();
- late StreamSubscription _onCompleteSubscription;
- final Source _finishedSoundSource = AssetSource('finish.mp3');
- final Source _beepSoundSource = AssetSource('beep.mp3');
bool isWorkoutStarted = false;
bool isWorkoutComplete = false;
- bool isMuted = false;
int motivationBefore = 50;
int motivationAfter = 50;
- void mutePlayer() {
- isMuted = true;
- _audioPlayer.setVolume(0);
- notifyListeners();
- }
-
- void unMutePlayer() {
- isMuted = false;
- _audioPlayer.setVolume(1);
- notifyListeners();
- }
-
- WorkoutProvider(this.timerProvider);
-
+ int _workoutPhaseIndex = 0;
final List _workoutPhases = [
'Warm-Up',
'High Intensity',
@@ -44,7 +26,8 @@ class WorkoutProvider extends ChangeNotifier {
'High Intensity',
'Cool-down'
];
- int _workoutPhaseIndex = 0;
+
+ WorkoutProvider(this.timerProvider, this.audioProvider);
String get currentPhase => _workoutPhases[_workoutPhaseIndex];
Duration get currentPhaseDuration =>
@@ -56,19 +39,15 @@ class WorkoutProvider extends ChangeNotifier {
_workoutPhaseSettings[currentPhase]!['source'];
void nextPhase() {
- print('called next phase');
_onCompleteSubscription.cancel();
_audioPlayer.stop();
if (_workoutPhaseIndex < _workoutPhases.length - 1) {
- _audioPlayer.play(_beepSoundSource);
_workoutPhaseIndex += 1;
- _onCompleteSubscription = _audioPlayer.onPlayerComplete.listen((event) {
- _audioPlayer.play(currentPhaseSource);
- });
+ audioProvider.playSourceAfterBeep(currentPhaseSource);
timerProvider.startTimer(currentPhaseDuration);
} else {
//workout completed
- _audioPlayer.play(_finishedSoundSource);
+ audioProvider.playFinishSound;
stopWorkout();
}
}
@@ -76,29 +55,29 @@ class WorkoutProvider extends ChangeNotifier {
void startWorkout() {
isWorkoutStarted = true;
isWorkoutComplete = false;
- _audioPlayer.play(_beepSoundSource).whenComplete(() => null);
- _onCompleteSubscription = _audioPlayer.onPlayerComplete.listen((event) {
- _audioPlayer.play(currentPhaseSource);
- });
+ audioProvider.playSourceAfterBeep(currentPhaseSource);
timerProvider.startTimer(currentPhaseDuration);
}
void stopWorkout() {
isWorkoutStarted = false;
isWorkoutComplete = true;
- _audioPlayer.stop();
- timerProvider.stopTimer();
+ _cleanUp();
notifyListeners();
}
void interruptWorkout() {
isWorkoutStarted = false;
isWorkoutComplete = false;
- _audioPlayer.stop();
- timerProvider.stopTimer();
+ _cleanUp();
notifyListeners();
}
+ void _cleanUp() {
+ audioProvider.stop();
+ timerProvider.stopTimer();
+ }
+
void saveWorkout() {
Workout workout =
Workout(motivationBefore, motivationAfter, DateTime.now());
@@ -107,7 +86,7 @@ class WorkoutProvider extends ChangeNotifier {
@override
void dispose() {
- interruptWorkout();
+ _cleanUp();
super.dispose();
}
}
diff --git a/lib/widgets/mute_button.dart b/lib/widgets/mute_button.dart
index 863bb52..29bebf7 100644
--- a/lib/widgets/mute_button.dart
+++ b/lib/widgets/mute_button.dart
@@ -1,13 +1,14 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
-import 'package:smoke_cess_app/providers/workout_provider.dart';
+
+import '../providers/audio_provider.dart';
class MuteButton extends StatelessWidget {
const MuteButton({super.key});
@override
Widget build(BuildContext context) {
- WorkoutProvider workoutProvider = context.watch();
+ AudioProvider workoutProvider = context.watch();
return IconButton(
onPressed: workoutProvider.isMuted
diff --git a/lib/widgets/workout_form.dart b/lib/widgets/workout_form.dart
index a176cd0..3e75882 100644
--- a/lib/widgets/workout_form.dart
+++ b/lib/widgets/workout_form.dart
@@ -1,21 +1,26 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
+import 'package:smoke_cess_app/providers/audio_provider.dart';
import '../providers/timer_provider.dart';
import '../providers/workout_provider.dart';
import 'mute_button.dart';
import 'workout_timer_widget.dart';
class WorkoutForm extends StatelessWidget {
- const WorkoutForm({super.key});
+ WorkoutForm({super.key});
+
+ final TimerProvider timerProvider = TimerProvider();
+ final AudioProvider audioProvider = AudioProvider();
@override
Widget build(BuildContext context) {
- TimerProvider timerProvider = TimerProvider();
return MultiProvider(
providers: [
ChangeNotifierProvider(create: (context) => timerProvider),
+ ChangeNotifierProvider(create: (context) => audioProvider),
ChangeNotifierProvider(
- create: (context) => WorkoutProvider(timerProvider)),
+ create: (context) =>
+ WorkoutProvider(timerProvider, audioProvider)),
],
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
diff --git a/pubspec.lock b/pubspec.lock
deleted file mode 100644
index cc89bd1..0000000
--- a/pubspec.lock
+++ /dev/null
@@ -1,610 +0,0 @@
-# Generated by pub
-# See https://dart.dev/tools/pub/glossary#lockfile
-packages:
- args:
- dependency: transitive
- description:
- name: args
- sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440"
- url: "https://pub.dev"
- source: hosted
- version: "2.4.0"
- async:
- dependency: transitive
- description:
- name: async
- sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
- url: "https://pub.dev"
- source: hosted
- version: "2.10.0"
- audioplayers:
- dependency: "direct main"
- description:
- name: audioplayers
- sha256: "16451eab798b23ad9307aef6f9ca62bb8fb06542af8810eead0d236d3fd40a42"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.1"
- audioplayers_android:
- dependency: transitive
- description:
- name: audioplayers_android
- sha256: b2c833e6f718b6b030454e329931229afafe9327fdb002874dd544dc8bf2484d
- url: "https://pub.dev"
- source: hosted
- version: "2.0.0"
- audioplayers_darwin:
- dependency: transitive
- description:
- name: audioplayers_darwin
- sha256: e7a3c8759bf11ecfe4b20df338bf9f3d37c7719a5761c46a3833aba0ceeaacff
- url: "https://pub.dev"
- source: hosted
- version: "3.0.1"
- audioplayers_linux:
- dependency: transitive
- description:
- name: audioplayers_linux
- sha256: e95b65e1f4d4764601dac5e65f8d8186fc29401043ab020f1dacec483d708707
- url: "https://pub.dev"
- source: hosted
- version: "1.0.4"
- audioplayers_platform_interface:
- dependency: transitive
- description:
- name: audioplayers_platform_interface
- sha256: "178581a44cb685fd798d2108111d2e98cca3400e30b9c3a05546f124fb37f600"
- url: "https://pub.dev"
- source: hosted
- version: "4.0.0"
- audioplayers_web:
- dependency: transitive
- description:
- name: audioplayers_web
- sha256: "859ba09be2a57e57a787273f18c8cf0d9b61383870c5ee4b5632fe9adbc37edf"
- url: "https://pub.dev"
- source: hosted
- version: "2.2.0"
- audioplayers_windows:
- dependency: transitive
- description:
- name: audioplayers_windows
- sha256: "622e01c4c357c2aaf1b956c3a0f89d97c3cb40315c03f16e3b6c2a31ff9c38bc"
- url: "https://pub.dev"
- source: hosted
- version: "1.1.3"
- awesome_dialog:
- dependency: "direct main"
- description:
- name: awesome_dialog
- sha256: ac08268b991f228fc6b8880b68ec030d2941bcc8df8b6a6551fb79f2bd36b7da
- url: "https://pub.dev"
- source: hosted
- version: "3.0.2"
- boolean_selector:
- dependency: transitive
- description:
- name: boolean_selector
- sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- characters:
- dependency: transitive
- description:
- name: characters
- sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
- url: "https://pub.dev"
- source: hosted
- version: "1.2.1"
- clock:
- dependency: transitive
- description:
- name: clock
- sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
- url: "https://pub.dev"
- source: hosted
- version: "1.1.1"
- collection:
- dependency: transitive
- description:
- name: collection
- sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
- url: "https://pub.dev"
- source: hosted
- version: "1.17.0"
- crypto:
- dependency: transitive
- description:
- name: crypto
- sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
- url: "https://pub.dev"
- source: hosted
- version: "3.0.2"
- cupertino_icons:
- dependency: "direct main"
- description:
- name: cupertino_icons
- sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be
- url: "https://pub.dev"
- source: hosted
- version: "1.0.5"
- dbus:
- dependency: transitive
- description:
- name: dbus
- sha256: "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263"
- url: "https://pub.dev"
- source: hosted
- version: "0.7.8"
- fake_async:
- dependency: transitive
- description:
- name: fake_async
- sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
- url: "https://pub.dev"
- source: hosted
- version: "1.3.1"
- ffi:
- dependency: transitive
- description:
- name: ffi
- sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978
- url: "https://pub.dev"
- source: hosted
- version: "2.0.1"
- file:
- dependency: transitive
- description:
- name: file
- sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
- url: "https://pub.dev"
- source: hosted
- version: "6.1.4"
- flutter:
- dependency: "direct main"
- description: flutter
- source: sdk
- version: "0.0.0"
- flutter_lints:
- dependency: "direct dev"
- description:
- name: flutter_lints
- sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
- url: "https://pub.dev"
- source: hosted
- version: "2.0.1"
- flutter_local_notifications:
- dependency: "direct main"
- description:
- name: flutter_local_notifications
- sha256: "293995f94e120c8afce768981bd1fa9c5d6de67c547568e3b42ae2defdcbb4a0"
- url: "https://pub.dev"
- source: hosted
- version: "13.0.0"
- flutter_local_notifications_linux:
- dependency: transitive
- description:
- name: flutter_local_notifications_linux
- sha256: ccb08b93703aeedb58856e5637450bf3ffec899adb66dc325630b68994734b89
- url: "https://pub.dev"
- source: hosted
- version: "3.0.0+1"
- flutter_local_notifications_platform_interface:
- dependency: transitive
- description:
- name: flutter_local_notifications_platform_interface
- sha256: "5ec1feac5f7f7d9266759488bc5f76416152baba9aa1b26fe572246caa00d1ab"
- url: "https://pub.dev"
- source: hosted
- version: "6.0.0"
- flutter_test:
- dependency: "direct dev"
- description: flutter
- source: sdk
- version: "0.0.0"
- flutter_web_plugins:
- dependency: transitive
- description: flutter
- source: sdk
- version: "0.0.0"
- graphs:
- dependency: transitive
- description:
- name: graphs
- sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2
- url: "https://pub.dev"
- source: hosted
- version: "2.2.0"
- http:
- dependency: "direct main"
- description:
- name: http
- sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
- url: "https://pub.dev"
- source: hosted
- version: "0.13.5"
- http_parser:
- dependency: transitive
- description:
- name: http_parser
- sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
- url: "https://pub.dev"
- source: hosted
- version: "4.0.2"
- intl:
- dependency: transitive
- description:
- name: intl
- sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6
- url: "https://pub.dev"
- source: hosted
- version: "0.18.0"
- js:
- dependency: transitive
- description:
- name: js
- sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
- url: "https://pub.dev"
- source: hosted
- version: "0.6.5"
- lints:
- dependency: transitive
- description:
- name: lints
- sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.1"
- matcher:
- dependency: transitive
- description:
- name: matcher
- sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
- url: "https://pub.dev"
- source: hosted
- version: "0.12.13"
- material_color_utilities:
- dependency: transitive
- description:
- name: material_color_utilities
- sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
- url: "https://pub.dev"
- source: hosted
- version: "0.2.0"
- meta:
- dependency: transitive
- description:
- name: meta
- sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
- url: "https://pub.dev"
- source: hosted
- version: "1.8.0"
- mobile_scanner:
- dependency: "direct main"
- description:
- name: mobile_scanner
- sha256: "4045e8441e21f1fb8998a76fbffd054510dd3a3b1dee55c7c9a2083eee687345"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.0"
- nested:
- dependency: transitive
- description:
- name: nested
- sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
- url: "https://pub.dev"
- source: hosted
- version: "1.0.0"
- path:
- dependency: "direct main"
- description:
- name: path
- sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
- url: "https://pub.dev"
- source: hosted
- version: "1.8.2"
- path_provider:
- dependency: "direct main"
- description:
- name: path_provider
- sha256: "04890b994ee89bfa80bf3080bfec40d5a92c5c7a785ebb02c13084a099d2b6f9"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.13"
- path_provider_android:
- dependency: transitive
- description:
- name: path_provider_android
- sha256: "7623b7d4be0f0f7d9a8b5ee6879fc13e4522d4c875ab86801dee4af32b54b83e"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.23"
- path_provider_foundation:
- dependency: transitive
- description:
- name: path_provider_foundation
- sha256: eec003594f19fe2456ea965ae36b3fc967bc5005f508890aafe31fa75e41d972
- url: "https://pub.dev"
- source: hosted
- version: "2.1.2"
- path_provider_linux:
- dependency: transitive
- description:
- name: path_provider_linux
- sha256: "525ad5e07622d19447ad740b1ed5070031f7a5437f44355ae915ff56e986429a"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.9"
- path_provider_platform_interface:
- dependency: transitive
- description:
- name: path_provider_platform_interface
- sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.6"
- path_provider_windows:
- dependency: transitive
- description:
- name: path_provider_windows
- sha256: "642ddf65fde5404f83267e8459ddb4556316d3ee6d511ed193357e25caa3632d"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.4"
- petitparser:
- dependency: transitive
- description:
- name: petitparser
- sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4"
- url: "https://pub.dev"
- source: hosted
- version: "5.1.0"
- platform:
- dependency: transitive
- description:
- name: platform
- sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
- url: "https://pub.dev"
- source: hosted
- version: "3.1.0"
- plugin_platform_interface:
- dependency: transitive
- description:
- name: plugin_platform_interface
- sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.4"
- process:
- dependency: transitive
- description:
- name: process
- sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
- url: "https://pub.dev"
- source: hosted
- version: "4.2.4"
- provider:
- dependency: "direct main"
- description:
- name: provider
- sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f
- url: "https://pub.dev"
- source: hosted
- version: "6.0.5"
- rive:
- dependency: transitive
- description:
- name: rive
- sha256: "22e3755b75f4ea4492d2fecf4fc2acf1c8d0073df39781d290a20cbfe74c3760"
- url: "https://pub.dev"
- source: hosted
- version: "0.9.1"
- shared_preferences:
- dependency: "direct main"
- description:
- name: shared_preferences
- sha256: ee6257848f822b8481691f20c3e6d2bfee2e9eccb2a3d249907fcfb198c55b41
- url: "https://pub.dev"
- source: hosted
- version: "2.0.18"
- shared_preferences_android:
- dependency: transitive
- description:
- name: shared_preferences_android
- sha256: a51a4f9375097f94df1c6e0a49c0374440d31ab026b59d58a7e7660675879db4
- url: "https://pub.dev"
- source: hosted
- version: "2.0.16"
- shared_preferences_foundation:
- dependency: transitive
- description:
- name: shared_preferences_foundation
- sha256: "6b84fdf06b32bb336f972d373cd38b63734f3461ba56ac2ba01b56d052796259"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.4"
- shared_preferences_linux:
- dependency: transitive
- description:
- name: shared_preferences_linux
- sha256: d7fb71e6e20cd3dfffcc823a28da3539b392e53ed5fc5c2b90b55fdaa8a7e8fa
- url: "https://pub.dev"
- source: hosted
- version: "2.1.4"
- shared_preferences_platform_interface:
- dependency: transitive
- description:
- name: shared_preferences_platform_interface
- sha256: "824bfd02713e37603b2bdade0842e47d56e7db32b1dcdd1cae533fb88e2913fc"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- shared_preferences_web:
- dependency: transitive
- description:
- name: shared_preferences_web
- sha256: "6737b757e49ba93de2a233df229d0b6a87728cea1684da828cbc718b65dcf9d7"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.5"
- shared_preferences_windows:
- dependency: transitive
- description:
- name: shared_preferences_windows
- sha256: bd014168e8484837c39ef21065b78f305810ceabc1d4f90be6e3b392ce81b46d
- url: "https://pub.dev"
- source: hosted
- version: "2.1.4"
- sky_engine:
- dependency: transitive
- description: flutter
- source: sdk
- version: "0.0.99"
- source_span:
- dependency: transitive
- description:
- name: source_span
- sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
- url: "https://pub.dev"
- source: hosted
- version: "1.9.1"
- sqflite:
- dependency: "direct main"
- description:
- name: sqflite
- sha256: "851d5040552cf911f4cabda08d003eca76b27da3ed0002978272e27c8fbf8ecc"
- url: "https://pub.dev"
- source: hosted
- version: "2.2.5"
- sqflite_common:
- dependency: transitive
- description:
- name: sqflite_common
- sha256: bfd6973aaeeb93475bc0d875ac9aefddf7965ef22ce09790eb963992ffc5183f
- url: "https://pub.dev"
- source: hosted
- version: "2.4.2+2"
- stack_trace:
- dependency: transitive
- description:
- name: stack_trace
- sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
- url: "https://pub.dev"
- source: hosted
- version: "1.11.0"
- stream_channel:
- dependency: transitive
- description:
- name: stream_channel
- sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- string_scanner:
- dependency: transitive
- description:
- name: string_scanner
- sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
- url: "https://pub.dev"
- source: hosted
- version: "1.2.0"
- syncfusion_flutter_charts:
- dependency: "direct main"
- description:
- name: syncfusion_flutter_charts
- sha256: "6faeb211311559f99f3c816b75aa493e68d1cc263f62dec530d5e8098b71bae4"
- url: "https://pub.dev"
- source: hosted
- version: "20.4.52"
- syncfusion_flutter_core:
- dependency: transitive
- description:
- name: syncfusion_flutter_core
- sha256: "4319454a92fe5aea1e90ff68c17703a39517ab05dd3074c34c9553e5f7cbf414"
- url: "https://pub.dev"
- source: hosted
- version: "20.4.52"
- synchronized:
- dependency: transitive
- description:
- name: synchronized
- sha256: "33b31b6beb98100bf9add464a36a8dd03eb10c7a8cf15aeec535e9b054aaf04b"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.1"
- term_glyph:
- dependency: transitive
- description:
- name: term_glyph
- sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
- url: "https://pub.dev"
- source: hosted
- version: "1.2.1"
- test_api:
- dependency: transitive
- description:
- name: test_api
- sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
- url: "https://pub.dev"
- source: hosted
- version: "0.4.16"
- timezone:
- dependency: "direct main"
- description:
- name: timezone
- sha256: "24c8fcdd49a805d95777a39064862133ff816ebfffe0ceff110fb5960e557964"
- url: "https://pub.dev"
- source: hosted
- version: "0.9.1"
- typed_data:
- dependency: transitive
- description:
- name: typed_data
- sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
- url: "https://pub.dev"
- source: hosted
- version: "1.3.1"
- uuid:
- dependency: transitive
- description:
- name: uuid
- sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.7"
- vector_math:
- dependency: transitive
- description:
- name: vector_math
- sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.4"
- win32:
- dependency: transitive
- description:
- name: win32
- sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46
- url: "https://pub.dev"
- source: hosted
- version: "3.1.3"
- xdg_directories:
- dependency: transitive
- description:
- name: xdg_directories
- sha256: bd512f03919aac5f1313eb8249f223bacf4927031bf60b02601f81f687689e86
- url: "https://pub.dev"
- source: hosted
- version: "0.2.0+3"
- xml:
- dependency: transitive
- description:
- name: xml
- sha256: "979ee37d622dec6365e2efa4d906c37470995871fe9ae080d967e192d88286b5"
- url: "https://pub.dev"
- source: hosted
- version: "6.2.2"
-sdks:
- dart: ">=2.18.2 <3.0.0"
- flutter: ">=3.3.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 0c85cc8..690527f 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -29,6 +29,11 @@ dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^2.0.0
+ flutter_launcher_icons: ^0.12.0
+flutter_icons:
+ android: 'launcher_icon'
+ ios: true
+ image_path: 'assets/ZI_logo.png'
flutter:
uses-material-design: true