Initial Commit
							
								
								
									
										46
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					# Miscellaneous
 | 
				
			||||||
 | 
					*.class
 | 
				
			||||||
 | 
					*.log
 | 
				
			||||||
 | 
					*.pyc
 | 
				
			||||||
 | 
					*.swp
 | 
				
			||||||
 | 
					.DS_Store
 | 
				
			||||||
 | 
					.atom/
 | 
				
			||||||
 | 
					.buildlog/
 | 
				
			||||||
 | 
					.history
 | 
				
			||||||
 | 
					.svn/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# IntelliJ related
 | 
				
			||||||
 | 
					*.iml
 | 
				
			||||||
 | 
					*.ipr
 | 
				
			||||||
 | 
					*.iws
 | 
				
			||||||
 | 
					.idea/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The .vscode folder contains launch configuration and tasks you configure in
 | 
				
			||||||
 | 
					# VS Code which you may wish to be included in version control, so this line
 | 
				
			||||||
 | 
					# is commented out by default.
 | 
				
			||||||
 | 
					#.vscode/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Flutter/Dart/Pub related
 | 
				
			||||||
 | 
					**/doc/api/
 | 
				
			||||||
 | 
					**/ios/Flutter/.last_build_id
 | 
				
			||||||
 | 
					.dart_tool/
 | 
				
			||||||
 | 
					.flutter-plugins
 | 
				
			||||||
 | 
					.flutter-plugins-dependencies
 | 
				
			||||||
 | 
					.packages
 | 
				
			||||||
 | 
					.pub-cache/
 | 
				
			||||||
 | 
					.pub/
 | 
				
			||||||
 | 
					/build/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Web related
 | 
				
			||||||
 | 
					lib/generated_plugin_registrant.dart
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Symbolication related
 | 
				
			||||||
 | 
					app.*.symbols
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Obfuscation related
 | 
				
			||||||
 | 
					app.*.map.json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Android Studio will place build artifacts here
 | 
				
			||||||
 | 
					/android/app/debug
 | 
				
			||||||
 | 
					/android/app/profile
 | 
				
			||||||
 | 
					/android/app/release
 | 
				
			||||||
							
								
								
									
										10
									
								
								.metadata
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					# This file tracks properties of this Flutter project.
 | 
				
			||||||
 | 
					# Used by Flutter tool to assess capabilities and perform upgrades etc.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This file should be version controlled and should not be manually edited.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					version:
 | 
				
			||||||
 | 
					  revision: 5464c5bac742001448fe4fc0597be939379f88ea
 | 
				
			||||||
 | 
					  channel: stable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					project_type: app
 | 
				
			||||||
							
								
								
									
										16
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					# sqflite_pust_local_notification
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A new Flutter project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Getting Started
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This project is a starting point for a Flutter application.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A few resources to get you started if this is your first Flutter project:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
 | 
				
			||||||
 | 
					- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For help getting started with Flutter, view our
 | 
				
			||||||
 | 
					[online documentation](https://flutter.dev/docs), which offers tutorials,
 | 
				
			||||||
 | 
					samples, guidance on mobile development, and a full API reference.
 | 
				
			||||||
							
								
								
									
										29
									
								
								analysis_options.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					# This file configures the analyzer, which statically analyzes Dart code to
 | 
				
			||||||
 | 
					# check for errors, warnings, and lints.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
 | 
				
			||||||
 | 
					# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
 | 
				
			||||||
 | 
					# invoked from the command line by running `flutter analyze`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The following line activates a set of recommended lints for Flutter apps,
 | 
				
			||||||
 | 
					# packages, and plugins designed to encourage good coding practices.
 | 
				
			||||||
 | 
					include: package:flutter_lints/flutter.yaml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					linter:
 | 
				
			||||||
 | 
					  # The lint rules applied to this project can be customized in the
 | 
				
			||||||
 | 
					  # section below to disable rules from the `package:flutter_lints/flutter.yaml`
 | 
				
			||||||
 | 
					  # included above or to enable additional rules. A list of all available lints
 | 
				
			||||||
 | 
					  # and their documentation is published at
 | 
				
			||||||
 | 
					  # https://dart-lang.github.io/linter/lints/index.html.
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Instead of disabling a lint rule for the entire project in the
 | 
				
			||||||
 | 
					  # section below, it can also be suppressed for a single line of code
 | 
				
			||||||
 | 
					  # or a specific dart file by using the `// ignore: name_of_lint` and
 | 
				
			||||||
 | 
					  # `// ignore_for_file: name_of_lint` syntax on the line or in the file
 | 
				
			||||||
 | 
					  # producing the lint.
 | 
				
			||||||
 | 
					  rules:
 | 
				
			||||||
 | 
					    # avoid_print: false  # Uncomment to disable the `avoid_print` rule
 | 
				
			||||||
 | 
					    # prefer_single_quotes: true  # Uncomment to enable the `prefer_single_quotes` rule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Additional information about this file can be found at
 | 
				
			||||||
 | 
					# https://dart.dev/guides/language/analysis-options
 | 
				
			||||||
							
								
								
									
										13
									
								
								android/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					gradle-wrapper.jar
 | 
				
			||||||
 | 
					/.gradle
 | 
				
			||||||
 | 
					/captures/
 | 
				
			||||||
 | 
					/gradlew
 | 
				
			||||||
 | 
					/gradlew.bat
 | 
				
			||||||
 | 
					/local.properties
 | 
				
			||||||
 | 
					GeneratedPluginRegistrant.java
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Remember to never publicly share your keystore.
 | 
				
			||||||
 | 
					# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
 | 
				
			||||||
 | 
					key.properties
 | 
				
			||||||
 | 
					**/*.keystore
 | 
				
			||||||
 | 
					**/*.jks
 | 
				
			||||||
							
								
								
									
										68
									
								
								android/app/build.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,68 @@
 | 
				
			|||||||
 | 
					def localProperties = new Properties()
 | 
				
			||||||
 | 
					def localPropertiesFile = rootProject.file('local.properties')
 | 
				
			||||||
 | 
					if (localPropertiesFile.exists()) {
 | 
				
			||||||
 | 
					    localPropertiesFile.withReader('UTF-8') { reader ->
 | 
				
			||||||
 | 
					        localProperties.load(reader)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def flutterRoot = localProperties.getProperty('flutter.sdk')
 | 
				
			||||||
 | 
					if (flutterRoot == null) {
 | 
				
			||||||
 | 
					    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
 | 
				
			||||||
 | 
					if (flutterVersionCode == null) {
 | 
				
			||||||
 | 
					    flutterVersionCode = '1'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def flutterVersionName = localProperties.getProperty('flutter.versionName')
 | 
				
			||||||
 | 
					if (flutterVersionName == null) {
 | 
				
			||||||
 | 
					    flutterVersionName = '1.0'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'com.android.application'
 | 
				
			||||||
 | 
					apply plugin: 'kotlin-android'
 | 
				
			||||||
 | 
					apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					android {
 | 
				
			||||||
 | 
					    compileSdkVersion flutter.compileSdkVersion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    compileOptions {
 | 
				
			||||||
 | 
					        sourceCompatibility JavaVersion.VERSION_1_8
 | 
				
			||||||
 | 
					        targetCompatibility JavaVersion.VERSION_1_8
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    kotlinOptions {
 | 
				
			||||||
 | 
					        jvmTarget = '1.8'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sourceSets {
 | 
				
			||||||
 | 
					        main.java.srcDirs += 'src/main/kotlin'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    defaultConfig {
 | 
				
			||||||
 | 
					        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
 | 
				
			||||||
 | 
					        applicationId "com.myself.sqflite_pust_local_notification"
 | 
				
			||||||
 | 
					        minSdkVersion flutter.minSdkVersion
 | 
				
			||||||
 | 
					        targetSdkVersion flutter.targetSdkVersion
 | 
				
			||||||
 | 
					        versionCode flutterVersionCode.toInteger()
 | 
				
			||||||
 | 
					        versionName flutterVersionName
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    buildTypes {
 | 
				
			||||||
 | 
					        release {
 | 
				
			||||||
 | 
					            // TODO: Add your own signing config for the release build.
 | 
				
			||||||
 | 
					            // Signing with the debug keys for now, so `flutter run --release` works.
 | 
				
			||||||
 | 
					            signingConfig signingConfigs.debug
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					flutter {
 | 
				
			||||||
 | 
					    source '../..'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dependencies {
 | 
				
			||||||
 | 
					    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										7
									
								
								android/app/src/debug/AndroidManifest.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 | 
				
			||||||
 | 
					    package="com.myself.sqflite_pust_local_notification">
 | 
				
			||||||
 | 
					    <!-- Flutter needs it to communicate with the running application
 | 
				
			||||||
 | 
					         to allow setting breakpoints, to provide hot reload, etc.
 | 
				
			||||||
 | 
					    -->
 | 
				
			||||||
 | 
					    <uses-permission android:name="android.permission.INTERNET"/>
 | 
				
			||||||
 | 
					</manifest>
 | 
				
			||||||
							
								
								
									
										41
									
								
								android/app/src/main/AndroidManifest.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 | 
				
			||||||
 | 
					    package="com.myself.sqflite_pust_local_notification">
 | 
				
			||||||
 | 
					       <!-- The INTERNET permission is required for development. Specifically,
 | 
				
			||||||
 | 
					         flutter needs it to communicate with the running application
 | 
				
			||||||
 | 
					         to allow setting breakpoints, to provide hot reload, etc.
 | 
				
			||||||
 | 
					    -->
 | 
				
			||||||
 | 
					    <uses-permission android:name="android.permission.INTERNET"/>
 | 
				
			||||||
 | 
					    <uses-permission android:name="android.permission.VIBRATE" />
 | 
				
			||||||
 | 
					    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
 | 
				
			||||||
 | 
					   <application
 | 
				
			||||||
 | 
					        android:label="sqflite_pust_local_notification"
 | 
				
			||||||
 | 
					        android:name="${applicationName}"
 | 
				
			||||||
 | 
					        android:icon="@mipmap/ic_launcher">
 | 
				
			||||||
 | 
					        <activity
 | 
				
			||||||
 | 
					            android:name=".MainActivity"
 | 
				
			||||||
 | 
					            android:exported="true"
 | 
				
			||||||
 | 
					            android:launchMode="singleTop"
 | 
				
			||||||
 | 
					            android:theme="@style/LaunchTheme"
 | 
				
			||||||
 | 
					            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
 | 
				
			||||||
 | 
					            android:hardwareAccelerated="true"
 | 
				
			||||||
 | 
					            android:windowSoftInputMode="adjustResize">
 | 
				
			||||||
 | 
					            <!-- Specifies an Android theme to apply to this Activity as soon as
 | 
				
			||||||
 | 
					                 the Android process has started. This theme is visible to the user
 | 
				
			||||||
 | 
					                 while the Flutter UI initializes. After that, this theme continues
 | 
				
			||||||
 | 
					                 to determine the Window background behind the Flutter UI. -->
 | 
				
			||||||
 | 
					            <meta-data
 | 
				
			||||||
 | 
					              android:name="io.flutter.embedding.android.NormalTheme"
 | 
				
			||||||
 | 
					              android:resource="@style/NormalTheme"
 | 
				
			||||||
 | 
					              />
 | 
				
			||||||
 | 
					            <intent-filter>
 | 
				
			||||||
 | 
					                <action android:name="android.intent.action.MAIN"/>
 | 
				
			||||||
 | 
					                <category android:name="android.intent.category.LAUNCHER"/>
 | 
				
			||||||
 | 
					            </intent-filter>
 | 
				
			||||||
 | 
					        </activity>
 | 
				
			||||||
 | 
					        <!-- Don't delete the meta-data below.
 | 
				
			||||||
 | 
					             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
 | 
				
			||||||
 | 
					        <meta-data
 | 
				
			||||||
 | 
					            android:name="flutterEmbedding"
 | 
				
			||||||
 | 
					            android:value="2" />
 | 
				
			||||||
 | 
					    </application>
 | 
				
			||||||
 | 
					</manifest>
 | 
				
			||||||
@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					package com.myself.sqflite_pust_local_notification
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import io.flutter.embedding.android.FlutterActivity
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MainActivity: FlutterActivity() {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										12
									
								
								android/app/src/main/res/drawable-v21/launch_background.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<!-- Modify this file to customize your launch splash screen -->
 | 
				
			||||||
 | 
					<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 | 
				
			||||||
 | 
					    <item android:drawable="?android:colorBackground" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- You can insert your own image assets here -->
 | 
				
			||||||
 | 
					    <!-- <item>
 | 
				
			||||||
 | 
					        <bitmap
 | 
				
			||||||
 | 
					            android:gravity="center"
 | 
				
			||||||
 | 
					            android:src="@mipmap/launch_image" />
 | 
				
			||||||
 | 
					    </item> -->
 | 
				
			||||||
 | 
					</layer-list>
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								android/app/src/main/res/drawable/appicon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 526 B  | 
							
								
								
									
										12
									
								
								android/app/src/main/res/drawable/launch_background.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<!-- Modify this file to customize your launch splash screen -->
 | 
				
			||||||
 | 
					<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 | 
				
			||||||
 | 
					    <item android:drawable="@android:color/white" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- You can insert your own image assets here -->
 | 
				
			||||||
 | 
					    <!-- <item>
 | 
				
			||||||
 | 
					        <bitmap
 | 
				
			||||||
 | 
					            android:gravity="center"
 | 
				
			||||||
 | 
					            android:src="@mipmap/launch_image" />
 | 
				
			||||||
 | 
					    </item> -->
 | 
				
			||||||
 | 
					</layer-list>
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								android/app/src/main/res/mipmap-hdpi/ic_launcher.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 544 B  | 
							
								
								
									
										
											BIN
										
									
								
								android/app/src/main/res/mipmap-mdpi/ic_launcher.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 442 B  | 
							
								
								
									
										
											BIN
										
									
								
								android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 721 B  | 
							
								
								
									
										
											BIN
										
									
								
								android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.4 KiB  | 
							
								
								
									
										18
									
								
								android/app/src/main/res/values-night/styles.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<resources>
 | 
				
			||||||
 | 
					    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
 | 
				
			||||||
 | 
					    <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
 | 
				
			||||||
 | 
					        <!-- Show a splash screen on the activity. Automatically removed when
 | 
				
			||||||
 | 
					             Flutter draws its first frame -->
 | 
				
			||||||
 | 
					        <item name="android:windowBackground">@drawable/launch_background</item>
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					    <!-- Theme applied to the Android Window as soon as the process has started.
 | 
				
			||||||
 | 
					         This theme determines the color of the Android Window while your
 | 
				
			||||||
 | 
					         Flutter UI initializes, as well as behind your Flutter UI while its
 | 
				
			||||||
 | 
					         running.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         This Theme is only used starting with V2 of Flutter's Android embedding. -->
 | 
				
			||||||
 | 
					    <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
 | 
				
			||||||
 | 
					        <item name="android:windowBackground">?android:colorBackground</item>
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					</resources>
 | 
				
			||||||
							
								
								
									
										18
									
								
								android/app/src/main/res/values/styles.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<resources>
 | 
				
			||||||
 | 
					    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
 | 
				
			||||||
 | 
					    <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
 | 
				
			||||||
 | 
					        <!-- Show a splash screen on the activity. Automatically removed when
 | 
				
			||||||
 | 
					             Flutter draws its first frame -->
 | 
				
			||||||
 | 
					        <item name="android:windowBackground">@drawable/launch_background</item>
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					    <!-- Theme applied to the Android Window as soon as the process has started.
 | 
				
			||||||
 | 
					         This theme determines the color of the Android Window while your
 | 
				
			||||||
 | 
					         Flutter UI initializes, as well as behind your Flutter UI while its
 | 
				
			||||||
 | 
					         running.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         This Theme is only used starting with V2 of Flutter's Android embedding. -->
 | 
				
			||||||
 | 
					    <style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
 | 
				
			||||||
 | 
					        <item name="android:windowBackground">?android:colorBackground</item>
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					</resources>
 | 
				
			||||||
							
								
								
									
										7
									
								
								android/app/src/profile/AndroidManifest.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 | 
				
			||||||
 | 
					    package="com.myself.sqflite_pust_local_notification">
 | 
				
			||||||
 | 
					    <!-- Flutter needs it to communicate with the running application
 | 
				
			||||||
 | 
					         to allow setting breakpoints, to provide hot reload, etc.
 | 
				
			||||||
 | 
					    -->
 | 
				
			||||||
 | 
					    <uses-permission android:name="android.permission.INTERNET"/>
 | 
				
			||||||
 | 
					</manifest>
 | 
				
			||||||
							
								
								
									
										31
									
								
								android/build.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					buildscript {
 | 
				
			||||||
 | 
					    ext.kotlin_version = '1.6.10'
 | 
				
			||||||
 | 
					    repositories {
 | 
				
			||||||
 | 
					        google()
 | 
				
			||||||
 | 
					        mavenCentral()
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dependencies {
 | 
				
			||||||
 | 
					        classpath 'com.android.tools.build:gradle:4.1.0'
 | 
				
			||||||
 | 
					        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					allprojects {
 | 
				
			||||||
 | 
					    repositories {
 | 
				
			||||||
 | 
					        google()
 | 
				
			||||||
 | 
					        mavenCentral()
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					rootProject.buildDir = '../build'
 | 
				
			||||||
 | 
					subprojects {
 | 
				
			||||||
 | 
					    project.buildDir = "${rootProject.buildDir}/${project.name}"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					subprojects {
 | 
				
			||||||
 | 
					    project.evaluationDependsOn(':app')
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					task clean(type: Delete) {
 | 
				
			||||||
 | 
					    delete rootProject.buildDir
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										3
									
								
								android/gradle.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					org.gradle.jvmargs=-Xmx1536M
 | 
				
			||||||
 | 
					android.useAndroidX=true
 | 
				
			||||||
 | 
					android.enableJetifier=true
 | 
				
			||||||
							
								
								
									
										6
									
								
								android/gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					#Fri Jun 23 08:50:38 CEST 2017
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
							
								
								
									
										11
									
								
								android/settings.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					include ':app'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
 | 
				
			||||||
 | 
					def properties = new Properties()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					assert localPropertiesFile.exists()
 | 
				
			||||||
 | 
					localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def flutterSdkPath = properties.getProperty("flutter.sdk")
 | 
				
			||||||
 | 
					assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
 | 
				
			||||||
 | 
					apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								assets/images/profile.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 24 KiB  | 
							
								
								
									
										34
									
								
								ios/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					**/dgph
 | 
				
			||||||
 | 
					*.mode1v3
 | 
				
			||||||
 | 
					*.mode2v3
 | 
				
			||||||
 | 
					*.moved-aside
 | 
				
			||||||
 | 
					*.pbxuser
 | 
				
			||||||
 | 
					*.perspectivev3
 | 
				
			||||||
 | 
					**/*sync/
 | 
				
			||||||
 | 
					.sconsign.dblite
 | 
				
			||||||
 | 
					.tags*
 | 
				
			||||||
 | 
					**/.vagrant/
 | 
				
			||||||
 | 
					**/DerivedData/
 | 
				
			||||||
 | 
					Icon?
 | 
				
			||||||
 | 
					**/Pods/
 | 
				
			||||||
 | 
					**/.symlinks/
 | 
				
			||||||
 | 
					profile
 | 
				
			||||||
 | 
					xcuserdata
 | 
				
			||||||
 | 
					**/.generated/
 | 
				
			||||||
 | 
					Flutter/App.framework
 | 
				
			||||||
 | 
					Flutter/Flutter.framework
 | 
				
			||||||
 | 
					Flutter/Flutter.podspec
 | 
				
			||||||
 | 
					Flutter/Generated.xcconfig
 | 
				
			||||||
 | 
					Flutter/ephemeral/
 | 
				
			||||||
 | 
					Flutter/app.flx
 | 
				
			||||||
 | 
					Flutter/app.zip
 | 
				
			||||||
 | 
					Flutter/flutter_assets/
 | 
				
			||||||
 | 
					Flutter/flutter_export_environment.sh
 | 
				
			||||||
 | 
					ServiceDefinitions.json
 | 
				
			||||||
 | 
					Runner/GeneratedPluginRegistrant.*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Exceptions to above rules.
 | 
				
			||||||
 | 
					!default.mode1v3
 | 
				
			||||||
 | 
					!default.mode2v3
 | 
				
			||||||
 | 
					!default.pbxuser
 | 
				
			||||||
 | 
					!default.perspectivev3
 | 
				
			||||||
							
								
								
									
										26
									
								
								ios/Flutter/AppFrameworkInfo.plist
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
				
			||||||
 | 
					<plist version="1.0">
 | 
				
			||||||
 | 
					<dict>
 | 
				
			||||||
 | 
					  <key>CFBundleDevelopmentRegion</key>
 | 
				
			||||||
 | 
					  <string>en</string>
 | 
				
			||||||
 | 
					  <key>CFBundleExecutable</key>
 | 
				
			||||||
 | 
					  <string>App</string>
 | 
				
			||||||
 | 
					  <key>CFBundleIdentifier</key>
 | 
				
			||||||
 | 
					  <string>io.flutter.flutter.app</string>
 | 
				
			||||||
 | 
					  <key>CFBundleInfoDictionaryVersion</key>
 | 
				
			||||||
 | 
					  <string>6.0</string>
 | 
				
			||||||
 | 
					  <key>CFBundleName</key>
 | 
				
			||||||
 | 
					  <string>App</string>
 | 
				
			||||||
 | 
					  <key>CFBundlePackageType</key>
 | 
				
			||||||
 | 
					  <string>FMWK</string>
 | 
				
			||||||
 | 
					  <key>CFBundleShortVersionString</key>
 | 
				
			||||||
 | 
					  <string>1.0</string>
 | 
				
			||||||
 | 
					  <key>CFBundleSignature</key>
 | 
				
			||||||
 | 
					  <string>????</string>
 | 
				
			||||||
 | 
					  <key>CFBundleVersion</key>
 | 
				
			||||||
 | 
					  <string>1.0</string>
 | 
				
			||||||
 | 
					  <key>MinimumOSVersion</key>
 | 
				
			||||||
 | 
					  <string>9.0</string>
 | 
				
			||||||
 | 
					</dict>
 | 
				
			||||||
 | 
					</plist>
 | 
				
			||||||
							
								
								
									
										1
									
								
								ios/Flutter/Debug.xcconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					#include "Generated.xcconfig"
 | 
				
			||||||
							
								
								
									
										1
									
								
								ios/Flutter/Release.xcconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					#include "Generated.xcconfig"
 | 
				
			||||||
							
								
								
									
										481
									
								
								ios/Runner.xcodeproj/project.pbxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,481 @@
 | 
				
			|||||||
 | 
					// !$*UTF8*$!
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						archiveVersion = 1;
 | 
				
			||||||
 | 
						classes = {
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						objectVersion = 50;
 | 
				
			||||||
 | 
						objects = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Begin PBXBuildFile section */
 | 
				
			||||||
 | 
							1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
 | 
				
			||||||
 | 
							3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
 | 
				
			||||||
 | 
							74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
 | 
				
			||||||
 | 
							97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
 | 
				
			||||||
 | 
							97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
 | 
				
			||||||
 | 
							97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
 | 
				
			||||||
 | 
					/* End PBXBuildFile section */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Begin PBXCopyFilesBuildPhase section */
 | 
				
			||||||
 | 
							9705A1C41CF9048500538489 /* Embed Frameworks */ = {
 | 
				
			||||||
 | 
								isa = PBXCopyFilesBuildPhase;
 | 
				
			||||||
 | 
								buildActionMask = 2147483647;
 | 
				
			||||||
 | 
								dstPath = "";
 | 
				
			||||||
 | 
								dstSubfolderSpec = 10;
 | 
				
			||||||
 | 
								files = (
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								name = "Embed Frameworks";
 | 
				
			||||||
 | 
								runOnlyForDeploymentPostprocessing = 0;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					/* End PBXCopyFilesBuildPhase section */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Begin PBXFileReference section */
 | 
				
			||||||
 | 
							1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
 | 
				
			||||||
 | 
							1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
 | 
				
			||||||
 | 
							3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
 | 
				
			||||||
 | 
							74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
 | 
				
			||||||
 | 
							74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
 | 
				
			||||||
 | 
							7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
 | 
				
			||||||
 | 
							9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
 | 
				
			||||||
 | 
							9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
 | 
				
			||||||
 | 
							97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
 | 
				
			||||||
 | 
							97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
 | 
				
			||||||
 | 
							97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
 | 
				
			||||||
 | 
							97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
 | 
				
			||||||
 | 
							97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 | 
				
			||||||
 | 
					/* End PBXFileReference section */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Begin PBXFrameworksBuildPhase section */
 | 
				
			||||||
 | 
							97C146EB1CF9000F007C117D /* Frameworks */ = {
 | 
				
			||||||
 | 
								isa = PBXFrameworksBuildPhase;
 | 
				
			||||||
 | 
								buildActionMask = 2147483647;
 | 
				
			||||||
 | 
								files = (
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								runOnlyForDeploymentPostprocessing = 0;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					/* End PBXFrameworksBuildPhase section */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Begin PBXGroup section */
 | 
				
			||||||
 | 
							9740EEB11CF90186004384FC /* Flutter */ = {
 | 
				
			||||||
 | 
								isa = PBXGroup;
 | 
				
			||||||
 | 
								children = (
 | 
				
			||||||
 | 
									3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
 | 
				
			||||||
 | 
									9740EEB21CF90195004384FC /* Debug.xcconfig */,
 | 
				
			||||||
 | 
									7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
 | 
				
			||||||
 | 
									9740EEB31CF90195004384FC /* Generated.xcconfig */,
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								name = Flutter;
 | 
				
			||||||
 | 
								sourceTree = "<group>";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							97C146E51CF9000F007C117D = {
 | 
				
			||||||
 | 
								isa = PBXGroup;
 | 
				
			||||||
 | 
								children = (
 | 
				
			||||||
 | 
									9740EEB11CF90186004384FC /* Flutter */,
 | 
				
			||||||
 | 
									97C146F01CF9000F007C117D /* Runner */,
 | 
				
			||||||
 | 
									97C146EF1CF9000F007C117D /* Products */,
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								sourceTree = "<group>";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							97C146EF1CF9000F007C117D /* Products */ = {
 | 
				
			||||||
 | 
								isa = PBXGroup;
 | 
				
			||||||
 | 
								children = (
 | 
				
			||||||
 | 
									97C146EE1CF9000F007C117D /* Runner.app */,
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								name = Products;
 | 
				
			||||||
 | 
								sourceTree = "<group>";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							97C146F01CF9000F007C117D /* Runner */ = {
 | 
				
			||||||
 | 
								isa = PBXGroup;
 | 
				
			||||||
 | 
								children = (
 | 
				
			||||||
 | 
									97C146FA1CF9000F007C117D /* Main.storyboard */,
 | 
				
			||||||
 | 
									97C146FD1CF9000F007C117D /* Assets.xcassets */,
 | 
				
			||||||
 | 
									97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
 | 
				
			||||||
 | 
									97C147021CF9000F007C117D /* Info.plist */,
 | 
				
			||||||
 | 
									1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
 | 
				
			||||||
 | 
									1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
 | 
				
			||||||
 | 
									74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
 | 
				
			||||||
 | 
									74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								path = Runner;
 | 
				
			||||||
 | 
								sourceTree = "<group>";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					/* End PBXGroup section */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Begin PBXNativeTarget section */
 | 
				
			||||||
 | 
							97C146ED1CF9000F007C117D /* Runner */ = {
 | 
				
			||||||
 | 
								isa = PBXNativeTarget;
 | 
				
			||||||
 | 
								buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
 | 
				
			||||||
 | 
								buildPhases = (
 | 
				
			||||||
 | 
									9740EEB61CF901F6004384FC /* Run Script */,
 | 
				
			||||||
 | 
									97C146EA1CF9000F007C117D /* Sources */,
 | 
				
			||||||
 | 
									97C146EB1CF9000F007C117D /* Frameworks */,
 | 
				
			||||||
 | 
									97C146EC1CF9000F007C117D /* Resources */,
 | 
				
			||||||
 | 
									9705A1C41CF9048500538489 /* Embed Frameworks */,
 | 
				
			||||||
 | 
									3B06AD1E1E4923F5004D2608 /* Thin Binary */,
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								buildRules = (
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								dependencies = (
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								name = Runner;
 | 
				
			||||||
 | 
								productName = Runner;
 | 
				
			||||||
 | 
								productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
 | 
				
			||||||
 | 
								productType = "com.apple.product-type.application";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					/* End PBXNativeTarget section */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Begin PBXProject section */
 | 
				
			||||||
 | 
							97C146E61CF9000F007C117D /* Project object */ = {
 | 
				
			||||||
 | 
								isa = PBXProject;
 | 
				
			||||||
 | 
								attributes = {
 | 
				
			||||||
 | 
									LastUpgradeCheck = 1300;
 | 
				
			||||||
 | 
									ORGANIZATIONNAME = "";
 | 
				
			||||||
 | 
									TargetAttributes = {
 | 
				
			||||||
 | 
										97C146ED1CF9000F007C117D = {
 | 
				
			||||||
 | 
											CreatedOnToolsVersion = 7.3.1;
 | 
				
			||||||
 | 
											LastSwiftMigration = 1100;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
 | 
				
			||||||
 | 
								compatibilityVersion = "Xcode 9.3";
 | 
				
			||||||
 | 
								developmentRegion = en;
 | 
				
			||||||
 | 
								hasScannedForEncodings = 0;
 | 
				
			||||||
 | 
								knownRegions = (
 | 
				
			||||||
 | 
									en,
 | 
				
			||||||
 | 
									Base,
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								mainGroup = 97C146E51CF9000F007C117D;
 | 
				
			||||||
 | 
								productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
 | 
				
			||||||
 | 
								projectDirPath = "";
 | 
				
			||||||
 | 
								projectRoot = "";
 | 
				
			||||||
 | 
								targets = (
 | 
				
			||||||
 | 
									97C146ED1CF9000F007C117D /* Runner */,
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					/* End PBXProject section */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Begin PBXResourcesBuildPhase section */
 | 
				
			||||||
 | 
							97C146EC1CF9000F007C117D /* Resources */ = {
 | 
				
			||||||
 | 
								isa = PBXResourcesBuildPhase;
 | 
				
			||||||
 | 
								buildActionMask = 2147483647;
 | 
				
			||||||
 | 
								files = (
 | 
				
			||||||
 | 
									97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
 | 
				
			||||||
 | 
									3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
 | 
				
			||||||
 | 
									97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
 | 
				
			||||||
 | 
									97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								runOnlyForDeploymentPostprocessing = 0;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					/* End PBXResourcesBuildPhase section */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Begin PBXShellScriptBuildPhase section */
 | 
				
			||||||
 | 
							3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
 | 
				
			||||||
 | 
								isa = PBXShellScriptBuildPhase;
 | 
				
			||||||
 | 
								buildActionMask = 2147483647;
 | 
				
			||||||
 | 
								files = (
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								inputPaths = (
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								name = "Thin Binary";
 | 
				
			||||||
 | 
								outputPaths = (
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								runOnlyForDeploymentPostprocessing = 0;
 | 
				
			||||||
 | 
								shellPath = /bin/sh;
 | 
				
			||||||
 | 
								shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							9740EEB61CF901F6004384FC /* Run Script */ = {
 | 
				
			||||||
 | 
								isa = PBXShellScriptBuildPhase;
 | 
				
			||||||
 | 
								buildActionMask = 2147483647;
 | 
				
			||||||
 | 
								files = (
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								inputPaths = (
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								name = "Run Script";
 | 
				
			||||||
 | 
								outputPaths = (
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								runOnlyForDeploymentPostprocessing = 0;
 | 
				
			||||||
 | 
								shellPath = /bin/sh;
 | 
				
			||||||
 | 
								shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					/* End PBXShellScriptBuildPhase section */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Begin PBXSourcesBuildPhase section */
 | 
				
			||||||
 | 
							97C146EA1CF9000F007C117D /* Sources */ = {
 | 
				
			||||||
 | 
								isa = PBXSourcesBuildPhase;
 | 
				
			||||||
 | 
								buildActionMask = 2147483647;
 | 
				
			||||||
 | 
								files = (
 | 
				
			||||||
 | 
									74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
 | 
				
			||||||
 | 
									1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								runOnlyForDeploymentPostprocessing = 0;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					/* End PBXSourcesBuildPhase section */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Begin PBXVariantGroup section */
 | 
				
			||||||
 | 
							97C146FA1CF9000F007C117D /* Main.storyboard */ = {
 | 
				
			||||||
 | 
								isa = PBXVariantGroup;
 | 
				
			||||||
 | 
								children = (
 | 
				
			||||||
 | 
									97C146FB1CF9000F007C117D /* Base */,
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								name = Main.storyboard;
 | 
				
			||||||
 | 
								sourceTree = "<group>";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
 | 
				
			||||||
 | 
								isa = PBXVariantGroup;
 | 
				
			||||||
 | 
								children = (
 | 
				
			||||||
 | 
									97C147001CF9000F007C117D /* Base */,
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								name = LaunchScreen.storyboard;
 | 
				
			||||||
 | 
								sourceTree = "<group>";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					/* End PBXVariantGroup section */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Begin XCBuildConfiguration section */
 | 
				
			||||||
 | 
							249021D3217E4FDB00AE95B9 /* Profile */ = {
 | 
				
			||||||
 | 
								isa = XCBuildConfiguration;
 | 
				
			||||||
 | 
								buildSettings = {
 | 
				
			||||||
 | 
									ALWAYS_SEARCH_USER_PATHS = NO;
 | 
				
			||||||
 | 
									CLANG_ANALYZER_NONNULL = YES;
 | 
				
			||||||
 | 
									CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 | 
				
			||||||
 | 
									CLANG_CXX_LIBRARY = "libc++";
 | 
				
			||||||
 | 
									CLANG_ENABLE_MODULES = YES;
 | 
				
			||||||
 | 
									CLANG_ENABLE_OBJC_ARC = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_BOOL_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_COMMA = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_CONSTANT_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 | 
				
			||||||
 | 
									CLANG_WARN_EMPTY_BODY = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_ENUM_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_INFINITE_RECURSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_INT_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
 | 
				
			||||||
 | 
									CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_STRICT_PROTOTYPES = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_SUSPICIOUS_MOVE = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_UNREACHABLE_CODE = YES;
 | 
				
			||||||
 | 
									CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 | 
				
			||||||
 | 
									"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 | 
				
			||||||
 | 
									COPY_PHASE_STRIP = NO;
 | 
				
			||||||
 | 
									DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 | 
				
			||||||
 | 
									ENABLE_NS_ASSERTIONS = NO;
 | 
				
			||||||
 | 
									ENABLE_STRICT_OBJC_MSGSEND = YES;
 | 
				
			||||||
 | 
									GCC_C_LANGUAGE_STANDARD = gnu99;
 | 
				
			||||||
 | 
									GCC_NO_COMMON_BLOCKS = YES;
 | 
				
			||||||
 | 
									GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 | 
				
			||||||
 | 
									GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
 | 
				
			||||||
 | 
									GCC_WARN_UNDECLARED_SELECTOR = YES;
 | 
				
			||||||
 | 
									GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 | 
				
			||||||
 | 
									GCC_WARN_UNUSED_FUNCTION = YES;
 | 
				
			||||||
 | 
									GCC_WARN_UNUSED_VARIABLE = YES;
 | 
				
			||||||
 | 
									IPHONEOS_DEPLOYMENT_TARGET = 9.0;
 | 
				
			||||||
 | 
									MTL_ENABLE_DEBUG_INFO = NO;
 | 
				
			||||||
 | 
									SDKROOT = iphoneos;
 | 
				
			||||||
 | 
									SUPPORTED_PLATFORMS = iphoneos;
 | 
				
			||||||
 | 
									TARGETED_DEVICE_FAMILY = "1,2";
 | 
				
			||||||
 | 
									VALIDATE_PRODUCT = YES;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								name = Profile;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							249021D4217E4FDB00AE95B9 /* Profile */ = {
 | 
				
			||||||
 | 
								isa = XCBuildConfiguration;
 | 
				
			||||||
 | 
								baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
 | 
				
			||||||
 | 
								buildSettings = {
 | 
				
			||||||
 | 
									ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 | 
				
			||||||
 | 
									CLANG_ENABLE_MODULES = YES;
 | 
				
			||||||
 | 
									CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
 | 
				
			||||||
 | 
									ENABLE_BITCODE = NO;
 | 
				
			||||||
 | 
									INFOPLIST_FILE = Runner/Info.plist;
 | 
				
			||||||
 | 
									LD_RUNPATH_SEARCH_PATHS = (
 | 
				
			||||||
 | 
										"$(inherited)",
 | 
				
			||||||
 | 
										"@executable_path/Frameworks",
 | 
				
			||||||
 | 
									);
 | 
				
			||||||
 | 
									PRODUCT_BUNDLE_IDENTIFIER = com.myself.sqflitePustLocalNotification;
 | 
				
			||||||
 | 
									PRODUCT_NAME = "$(TARGET_NAME)";
 | 
				
			||||||
 | 
									SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
 | 
				
			||||||
 | 
									SWIFT_VERSION = 5.0;
 | 
				
			||||||
 | 
									VERSIONING_SYSTEM = "apple-generic";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								name = Profile;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							97C147031CF9000F007C117D /* Debug */ = {
 | 
				
			||||||
 | 
								isa = XCBuildConfiguration;
 | 
				
			||||||
 | 
								buildSettings = {
 | 
				
			||||||
 | 
									ALWAYS_SEARCH_USER_PATHS = NO;
 | 
				
			||||||
 | 
									CLANG_ANALYZER_NONNULL = YES;
 | 
				
			||||||
 | 
									CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 | 
				
			||||||
 | 
									CLANG_CXX_LIBRARY = "libc++";
 | 
				
			||||||
 | 
									CLANG_ENABLE_MODULES = YES;
 | 
				
			||||||
 | 
									CLANG_ENABLE_OBJC_ARC = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_BOOL_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_COMMA = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_CONSTANT_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 | 
				
			||||||
 | 
									CLANG_WARN_EMPTY_BODY = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_ENUM_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_INFINITE_RECURSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_INT_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
 | 
				
			||||||
 | 
									CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_STRICT_PROTOTYPES = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_SUSPICIOUS_MOVE = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_UNREACHABLE_CODE = YES;
 | 
				
			||||||
 | 
									CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 | 
				
			||||||
 | 
									"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 | 
				
			||||||
 | 
									COPY_PHASE_STRIP = NO;
 | 
				
			||||||
 | 
									DEBUG_INFORMATION_FORMAT = dwarf;
 | 
				
			||||||
 | 
									ENABLE_STRICT_OBJC_MSGSEND = YES;
 | 
				
			||||||
 | 
									ENABLE_TESTABILITY = YES;
 | 
				
			||||||
 | 
									GCC_C_LANGUAGE_STANDARD = gnu99;
 | 
				
			||||||
 | 
									GCC_DYNAMIC_NO_PIC = NO;
 | 
				
			||||||
 | 
									GCC_NO_COMMON_BLOCKS = YES;
 | 
				
			||||||
 | 
									GCC_OPTIMIZATION_LEVEL = 0;
 | 
				
			||||||
 | 
									GCC_PREPROCESSOR_DEFINITIONS = (
 | 
				
			||||||
 | 
										"DEBUG=1",
 | 
				
			||||||
 | 
										"$(inherited)",
 | 
				
			||||||
 | 
									);
 | 
				
			||||||
 | 
									GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 | 
				
			||||||
 | 
									GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
 | 
				
			||||||
 | 
									GCC_WARN_UNDECLARED_SELECTOR = YES;
 | 
				
			||||||
 | 
									GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 | 
				
			||||||
 | 
									GCC_WARN_UNUSED_FUNCTION = YES;
 | 
				
			||||||
 | 
									GCC_WARN_UNUSED_VARIABLE = YES;
 | 
				
			||||||
 | 
									IPHONEOS_DEPLOYMENT_TARGET = 9.0;
 | 
				
			||||||
 | 
									MTL_ENABLE_DEBUG_INFO = YES;
 | 
				
			||||||
 | 
									ONLY_ACTIVE_ARCH = YES;
 | 
				
			||||||
 | 
									SDKROOT = iphoneos;
 | 
				
			||||||
 | 
									TARGETED_DEVICE_FAMILY = "1,2";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								name = Debug;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							97C147041CF9000F007C117D /* Release */ = {
 | 
				
			||||||
 | 
								isa = XCBuildConfiguration;
 | 
				
			||||||
 | 
								buildSettings = {
 | 
				
			||||||
 | 
									ALWAYS_SEARCH_USER_PATHS = NO;
 | 
				
			||||||
 | 
									CLANG_ANALYZER_NONNULL = YES;
 | 
				
			||||||
 | 
									CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 | 
				
			||||||
 | 
									CLANG_CXX_LIBRARY = "libc++";
 | 
				
			||||||
 | 
									CLANG_ENABLE_MODULES = YES;
 | 
				
			||||||
 | 
									CLANG_ENABLE_OBJC_ARC = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_BOOL_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_COMMA = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_CONSTANT_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 | 
				
			||||||
 | 
									CLANG_WARN_EMPTY_BODY = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_ENUM_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_INFINITE_RECURSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_INT_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
 | 
				
			||||||
 | 
									CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_STRICT_PROTOTYPES = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_SUSPICIOUS_MOVE = YES;
 | 
				
			||||||
 | 
									CLANG_WARN_UNREACHABLE_CODE = YES;
 | 
				
			||||||
 | 
									CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 | 
				
			||||||
 | 
									"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 | 
				
			||||||
 | 
									COPY_PHASE_STRIP = NO;
 | 
				
			||||||
 | 
									DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 | 
				
			||||||
 | 
									ENABLE_NS_ASSERTIONS = NO;
 | 
				
			||||||
 | 
									ENABLE_STRICT_OBJC_MSGSEND = YES;
 | 
				
			||||||
 | 
									GCC_C_LANGUAGE_STANDARD = gnu99;
 | 
				
			||||||
 | 
									GCC_NO_COMMON_BLOCKS = YES;
 | 
				
			||||||
 | 
									GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 | 
				
			||||||
 | 
									GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
 | 
				
			||||||
 | 
									GCC_WARN_UNDECLARED_SELECTOR = YES;
 | 
				
			||||||
 | 
									GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 | 
				
			||||||
 | 
									GCC_WARN_UNUSED_FUNCTION = YES;
 | 
				
			||||||
 | 
									GCC_WARN_UNUSED_VARIABLE = YES;
 | 
				
			||||||
 | 
									IPHONEOS_DEPLOYMENT_TARGET = 9.0;
 | 
				
			||||||
 | 
									MTL_ENABLE_DEBUG_INFO = NO;
 | 
				
			||||||
 | 
									SDKROOT = iphoneos;
 | 
				
			||||||
 | 
									SUPPORTED_PLATFORMS = iphoneos;
 | 
				
			||||||
 | 
									SWIFT_COMPILATION_MODE = wholemodule;
 | 
				
			||||||
 | 
									SWIFT_OPTIMIZATION_LEVEL = "-O";
 | 
				
			||||||
 | 
									TARGETED_DEVICE_FAMILY = "1,2";
 | 
				
			||||||
 | 
									VALIDATE_PRODUCT = YES;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								name = Release;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							97C147061CF9000F007C117D /* Debug */ = {
 | 
				
			||||||
 | 
								isa = XCBuildConfiguration;
 | 
				
			||||||
 | 
								baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
 | 
				
			||||||
 | 
								buildSettings = {
 | 
				
			||||||
 | 
									ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 | 
				
			||||||
 | 
									CLANG_ENABLE_MODULES = YES;
 | 
				
			||||||
 | 
									CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
 | 
				
			||||||
 | 
									ENABLE_BITCODE = NO;
 | 
				
			||||||
 | 
									INFOPLIST_FILE = Runner/Info.plist;
 | 
				
			||||||
 | 
									LD_RUNPATH_SEARCH_PATHS = (
 | 
				
			||||||
 | 
										"$(inherited)",
 | 
				
			||||||
 | 
										"@executable_path/Frameworks",
 | 
				
			||||||
 | 
									);
 | 
				
			||||||
 | 
									PRODUCT_BUNDLE_IDENTIFIER = com.myself.sqflitePustLocalNotification;
 | 
				
			||||||
 | 
									PRODUCT_NAME = "$(TARGET_NAME)";
 | 
				
			||||||
 | 
									SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
 | 
				
			||||||
 | 
									SWIFT_OPTIMIZATION_LEVEL = "-Onone";
 | 
				
			||||||
 | 
									SWIFT_VERSION = 5.0;
 | 
				
			||||||
 | 
									VERSIONING_SYSTEM = "apple-generic";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								name = Debug;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							97C147071CF9000F007C117D /* Release */ = {
 | 
				
			||||||
 | 
								isa = XCBuildConfiguration;
 | 
				
			||||||
 | 
								baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
 | 
				
			||||||
 | 
								buildSettings = {
 | 
				
			||||||
 | 
									ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 | 
				
			||||||
 | 
									CLANG_ENABLE_MODULES = YES;
 | 
				
			||||||
 | 
									CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
 | 
				
			||||||
 | 
									ENABLE_BITCODE = NO;
 | 
				
			||||||
 | 
									INFOPLIST_FILE = Runner/Info.plist;
 | 
				
			||||||
 | 
									LD_RUNPATH_SEARCH_PATHS = (
 | 
				
			||||||
 | 
										"$(inherited)",
 | 
				
			||||||
 | 
										"@executable_path/Frameworks",
 | 
				
			||||||
 | 
									);
 | 
				
			||||||
 | 
									PRODUCT_BUNDLE_IDENTIFIER = com.myself.sqflitePustLocalNotification;
 | 
				
			||||||
 | 
									PRODUCT_NAME = "$(TARGET_NAME)";
 | 
				
			||||||
 | 
									SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
 | 
				
			||||||
 | 
									SWIFT_VERSION = 5.0;
 | 
				
			||||||
 | 
									VERSIONING_SYSTEM = "apple-generic";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								name = Release;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					/* End XCBuildConfiguration section */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Begin XCConfigurationList section */
 | 
				
			||||||
 | 
							97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
 | 
				
			||||||
 | 
								isa = XCConfigurationList;
 | 
				
			||||||
 | 
								buildConfigurations = (
 | 
				
			||||||
 | 
									97C147031CF9000F007C117D /* Debug */,
 | 
				
			||||||
 | 
									97C147041CF9000F007C117D /* Release */,
 | 
				
			||||||
 | 
									249021D3217E4FDB00AE95B9 /* Profile */,
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								defaultConfigurationIsVisible = 0;
 | 
				
			||||||
 | 
								defaultConfigurationName = Release;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
 | 
				
			||||||
 | 
								isa = XCConfigurationList;
 | 
				
			||||||
 | 
								buildConfigurations = (
 | 
				
			||||||
 | 
									97C147061CF9000F007C117D /* Debug */,
 | 
				
			||||||
 | 
									97C147071CF9000F007C117D /* Release */,
 | 
				
			||||||
 | 
									249021D4217E4FDB00AE95B9 /* Profile */,
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								defaultConfigurationIsVisible = 0;
 | 
				
			||||||
 | 
								defaultConfigurationName = Release;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					/* End XCConfigurationList section */
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						rootObject = 97C146E61CF9000F007C117D /* Project object */;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										7
									
								
								ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<Workspace
 | 
				
			||||||
 | 
					   version = "1.0">
 | 
				
			||||||
 | 
					   <FileRef
 | 
				
			||||||
 | 
					      location = "self:">
 | 
				
			||||||
 | 
					   </FileRef>
 | 
				
			||||||
 | 
					</Workspace>
 | 
				
			||||||
@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
				
			||||||
 | 
					<plist version="1.0">
 | 
				
			||||||
 | 
					<dict>
 | 
				
			||||||
 | 
						<key>IDEDidComputeMac32BitWarning</key>
 | 
				
			||||||
 | 
						<true/>
 | 
				
			||||||
 | 
					</dict>
 | 
				
			||||||
 | 
					</plist>
 | 
				
			||||||
@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
				
			||||||
 | 
					<plist version="1.0">
 | 
				
			||||||
 | 
					<dict>
 | 
				
			||||||
 | 
						<key>PreviewsEnabled</key>
 | 
				
			||||||
 | 
						<false/>
 | 
				
			||||||
 | 
					</dict>
 | 
				
			||||||
 | 
					</plist>
 | 
				
			||||||
							
								
								
									
										87
									
								
								ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,87 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<Scheme
 | 
				
			||||||
 | 
					   LastUpgradeVersion = "1300"
 | 
				
			||||||
 | 
					   version = "1.3">
 | 
				
			||||||
 | 
					   <BuildAction
 | 
				
			||||||
 | 
					      parallelizeBuildables = "YES"
 | 
				
			||||||
 | 
					      buildImplicitDependencies = "YES">
 | 
				
			||||||
 | 
					      <BuildActionEntries>
 | 
				
			||||||
 | 
					         <BuildActionEntry
 | 
				
			||||||
 | 
					            buildForTesting = "YES"
 | 
				
			||||||
 | 
					            buildForRunning = "YES"
 | 
				
			||||||
 | 
					            buildForProfiling = "YES"
 | 
				
			||||||
 | 
					            buildForArchiving = "YES"
 | 
				
			||||||
 | 
					            buildForAnalyzing = "YES">
 | 
				
			||||||
 | 
					            <BuildableReference
 | 
				
			||||||
 | 
					               BuildableIdentifier = "primary"
 | 
				
			||||||
 | 
					               BlueprintIdentifier = "97C146ED1CF9000F007C117D"
 | 
				
			||||||
 | 
					               BuildableName = "Runner.app"
 | 
				
			||||||
 | 
					               BlueprintName = "Runner"
 | 
				
			||||||
 | 
					               ReferencedContainer = "container:Runner.xcodeproj">
 | 
				
			||||||
 | 
					            </BuildableReference>
 | 
				
			||||||
 | 
					         </BuildActionEntry>
 | 
				
			||||||
 | 
					      </BuildActionEntries>
 | 
				
			||||||
 | 
					   </BuildAction>
 | 
				
			||||||
 | 
					   <TestAction
 | 
				
			||||||
 | 
					      buildConfiguration = "Debug"
 | 
				
			||||||
 | 
					      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
 | 
				
			||||||
 | 
					      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
 | 
				
			||||||
 | 
					      shouldUseLaunchSchemeArgsEnv = "YES">
 | 
				
			||||||
 | 
					      <MacroExpansion>
 | 
				
			||||||
 | 
					         <BuildableReference
 | 
				
			||||||
 | 
					            BuildableIdentifier = "primary"
 | 
				
			||||||
 | 
					            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
 | 
				
			||||||
 | 
					            BuildableName = "Runner.app"
 | 
				
			||||||
 | 
					            BlueprintName = "Runner"
 | 
				
			||||||
 | 
					            ReferencedContainer = "container:Runner.xcodeproj">
 | 
				
			||||||
 | 
					         </BuildableReference>
 | 
				
			||||||
 | 
					      </MacroExpansion>
 | 
				
			||||||
 | 
					      <Testables>
 | 
				
			||||||
 | 
					      </Testables>
 | 
				
			||||||
 | 
					   </TestAction>
 | 
				
			||||||
 | 
					   <LaunchAction
 | 
				
			||||||
 | 
					      buildConfiguration = "Debug"
 | 
				
			||||||
 | 
					      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
 | 
				
			||||||
 | 
					      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
 | 
				
			||||||
 | 
					      launchStyle = "0"
 | 
				
			||||||
 | 
					      useCustomWorkingDirectory = "NO"
 | 
				
			||||||
 | 
					      ignoresPersistentStateOnLaunch = "NO"
 | 
				
			||||||
 | 
					      debugDocumentVersioning = "YES"
 | 
				
			||||||
 | 
					      debugServiceExtension = "internal"
 | 
				
			||||||
 | 
					      allowLocationSimulation = "YES">
 | 
				
			||||||
 | 
					      <BuildableProductRunnable
 | 
				
			||||||
 | 
					         runnableDebuggingMode = "0">
 | 
				
			||||||
 | 
					         <BuildableReference
 | 
				
			||||||
 | 
					            BuildableIdentifier = "primary"
 | 
				
			||||||
 | 
					            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
 | 
				
			||||||
 | 
					            BuildableName = "Runner.app"
 | 
				
			||||||
 | 
					            BlueprintName = "Runner"
 | 
				
			||||||
 | 
					            ReferencedContainer = "container:Runner.xcodeproj">
 | 
				
			||||||
 | 
					         </BuildableReference>
 | 
				
			||||||
 | 
					      </BuildableProductRunnable>
 | 
				
			||||||
 | 
					   </LaunchAction>
 | 
				
			||||||
 | 
					   <ProfileAction
 | 
				
			||||||
 | 
					      buildConfiguration = "Profile"
 | 
				
			||||||
 | 
					      shouldUseLaunchSchemeArgsEnv = "YES"
 | 
				
			||||||
 | 
					      savedToolIdentifier = ""
 | 
				
			||||||
 | 
					      useCustomWorkingDirectory = "NO"
 | 
				
			||||||
 | 
					      debugDocumentVersioning = "YES">
 | 
				
			||||||
 | 
					      <BuildableProductRunnable
 | 
				
			||||||
 | 
					         runnableDebuggingMode = "0">
 | 
				
			||||||
 | 
					         <BuildableReference
 | 
				
			||||||
 | 
					            BuildableIdentifier = "primary"
 | 
				
			||||||
 | 
					            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
 | 
				
			||||||
 | 
					            BuildableName = "Runner.app"
 | 
				
			||||||
 | 
					            BlueprintName = "Runner"
 | 
				
			||||||
 | 
					            ReferencedContainer = "container:Runner.xcodeproj">
 | 
				
			||||||
 | 
					         </BuildableReference>
 | 
				
			||||||
 | 
					      </BuildableProductRunnable>
 | 
				
			||||||
 | 
					   </ProfileAction>
 | 
				
			||||||
 | 
					   <AnalyzeAction
 | 
				
			||||||
 | 
					      buildConfiguration = "Debug">
 | 
				
			||||||
 | 
					   </AnalyzeAction>
 | 
				
			||||||
 | 
					   <ArchiveAction
 | 
				
			||||||
 | 
					      buildConfiguration = "Release"
 | 
				
			||||||
 | 
					      revealArchiveInOrganizer = "YES">
 | 
				
			||||||
 | 
					   </ArchiveAction>
 | 
				
			||||||
 | 
					</Scheme>
 | 
				
			||||||
							
								
								
									
										7
									
								
								ios/Runner.xcworkspace/contents.xcworkspacedata
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<Workspace
 | 
				
			||||||
 | 
					   version = "1.0">
 | 
				
			||||||
 | 
					   <FileRef
 | 
				
			||||||
 | 
					      location = "group:Runner.xcodeproj">
 | 
				
			||||||
 | 
					   </FileRef>
 | 
				
			||||||
 | 
					</Workspace>
 | 
				
			||||||
@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
				
			||||||
 | 
					<plist version="1.0">
 | 
				
			||||||
 | 
					<dict>
 | 
				
			||||||
 | 
						<key>IDEDidComputeMac32BitWarning</key>
 | 
				
			||||||
 | 
						<true/>
 | 
				
			||||||
 | 
					</dict>
 | 
				
			||||||
 | 
					</plist>
 | 
				
			||||||
@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
				
			||||||
 | 
					<plist version="1.0">
 | 
				
			||||||
 | 
					<dict>
 | 
				
			||||||
 | 
						<key>PreviewsEnabled</key>
 | 
				
			||||||
 | 
						<false/>
 | 
				
			||||||
 | 
					</dict>
 | 
				
			||||||
 | 
					</plist>
 | 
				
			||||||
							
								
								
									
										16
									
								
								ios/Runner/AppDelegate.swift
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					import UIKit
 | 
				
			||||||
 | 
					import Flutter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@UIApplicationMain
 | 
				
			||||||
 | 
					@objc class AppDelegate: FlutterAppDelegate {
 | 
				
			||||||
 | 
					  override func application(
 | 
				
			||||||
 | 
					    _ application: UIApplication,
 | 
				
			||||||
 | 
					    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
 | 
				
			||||||
 | 
					  ) -> Bool {
 | 
				
			||||||
 | 
					    if #available(iOS 10.0, *) {
 | 
				
			||||||
 | 
					        UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    GeneratedPluginRegistrant.register(with: self)
 | 
				
			||||||
 | 
					    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										122
									
								
								ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,122 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "images" : [
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "20x20",
 | 
				
			||||||
 | 
					      "idiom" : "iphone",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-20x20@2x.png",
 | 
				
			||||||
 | 
					      "scale" : "2x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "20x20",
 | 
				
			||||||
 | 
					      "idiom" : "iphone",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-20x20@3x.png",
 | 
				
			||||||
 | 
					      "scale" : "3x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "29x29",
 | 
				
			||||||
 | 
					      "idiom" : "iphone",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-29x29@1x.png",
 | 
				
			||||||
 | 
					      "scale" : "1x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "29x29",
 | 
				
			||||||
 | 
					      "idiom" : "iphone",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-29x29@2x.png",
 | 
				
			||||||
 | 
					      "scale" : "2x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "29x29",
 | 
				
			||||||
 | 
					      "idiom" : "iphone",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-29x29@3x.png",
 | 
				
			||||||
 | 
					      "scale" : "3x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "40x40",
 | 
				
			||||||
 | 
					      "idiom" : "iphone",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-40x40@2x.png",
 | 
				
			||||||
 | 
					      "scale" : "2x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "40x40",
 | 
				
			||||||
 | 
					      "idiom" : "iphone",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-40x40@3x.png",
 | 
				
			||||||
 | 
					      "scale" : "3x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "60x60",
 | 
				
			||||||
 | 
					      "idiom" : "iphone",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-60x60@2x.png",
 | 
				
			||||||
 | 
					      "scale" : "2x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "60x60",
 | 
				
			||||||
 | 
					      "idiom" : "iphone",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-60x60@3x.png",
 | 
				
			||||||
 | 
					      "scale" : "3x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "20x20",
 | 
				
			||||||
 | 
					      "idiom" : "ipad",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-20x20@1x.png",
 | 
				
			||||||
 | 
					      "scale" : "1x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "20x20",
 | 
				
			||||||
 | 
					      "idiom" : "ipad",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-20x20@2x.png",
 | 
				
			||||||
 | 
					      "scale" : "2x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "29x29",
 | 
				
			||||||
 | 
					      "idiom" : "ipad",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-29x29@1x.png",
 | 
				
			||||||
 | 
					      "scale" : "1x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "29x29",
 | 
				
			||||||
 | 
					      "idiom" : "ipad",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-29x29@2x.png",
 | 
				
			||||||
 | 
					      "scale" : "2x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "40x40",
 | 
				
			||||||
 | 
					      "idiom" : "ipad",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-40x40@1x.png",
 | 
				
			||||||
 | 
					      "scale" : "1x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "40x40",
 | 
				
			||||||
 | 
					      "idiom" : "ipad",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-40x40@2x.png",
 | 
				
			||||||
 | 
					      "scale" : "2x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "76x76",
 | 
				
			||||||
 | 
					      "idiom" : "ipad",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-76x76@1x.png",
 | 
				
			||||||
 | 
					      "scale" : "1x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "76x76",
 | 
				
			||||||
 | 
					      "idiom" : "ipad",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-76x76@2x.png",
 | 
				
			||||||
 | 
					      "scale" : "2x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "83.5x83.5",
 | 
				
			||||||
 | 
					      "idiom" : "ipad",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-83.5x83.5@2x.png",
 | 
				
			||||||
 | 
					      "scale" : "2x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "size" : "1024x1024",
 | 
				
			||||||
 | 
					      "idiom" : "ios-marketing",
 | 
				
			||||||
 | 
					      "filename" : "Icon-App-1024x1024@1x.png",
 | 
				
			||||||
 | 
					      "scale" : "1x"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "info" : {
 | 
				
			||||||
 | 
					    "version" : 1,
 | 
				
			||||||
 | 
					    "author" : "xcode"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 11 KiB  | 
| 
		 After Width: | Height: | Size: 564 B  | 
| 
		 After Width: | Height: | Size: 1.3 KiB  | 
| 
		 After Width: | Height: | Size: 1.6 KiB  | 
| 
		 After Width: | Height: | Size: 1.0 KiB  | 
| 
		 After Width: | Height: | Size: 1.7 KiB  | 
| 
		 After Width: | Height: | Size: 1.9 KiB  | 
| 
		 After Width: | Height: | Size: 1.3 KiB  | 
| 
		 After Width: | Height: | Size: 1.9 KiB  | 
| 
		 After Width: | Height: | Size: 2.6 KiB  | 
| 
		 After Width: | Height: | Size: 2.6 KiB  | 
| 
		 After Width: | Height: | Size: 3.7 KiB  | 
| 
		 After Width: | Height: | Size: 1.8 KiB  | 
| 
		 After Width: | Height: | Size: 3.2 KiB  | 
| 
		 After Width: | Height: | Size: 3.5 KiB  | 
							
								
								
									
										23
									
								
								ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "images" : [
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "idiom" : "universal",
 | 
				
			||||||
 | 
					      "filename" : "LaunchImage.png",
 | 
				
			||||||
 | 
					      "scale" : "1x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "idiom" : "universal",
 | 
				
			||||||
 | 
					      "filename" : "LaunchImage@2x.png",
 | 
				
			||||||
 | 
					      "scale" : "2x"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "idiom" : "universal",
 | 
				
			||||||
 | 
					      "filename" : "LaunchImage@3x.png",
 | 
				
			||||||
 | 
					      "scale" : "3x"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "info" : {
 | 
				
			||||||
 | 
					    "version" : 1,
 | 
				
			||||||
 | 
					    "author" : "xcode"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 68 B  | 
							
								
								
									
										
											BIN
										
									
								
								ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 68 B  | 
							
								
								
									
										
											BIN
										
									
								
								ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 68 B  | 
							
								
								
									
										5
									
								
								ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					# Launch Screen Assets
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can customize the launch screen with your own desired assets by replacing the image files in this directory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
 | 
				
			||||||
							
								
								
									
										37
									
								
								ios/Runner/Base.lproj/LaunchScreen.storyboard
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
				
			||||||
 | 
					<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
 | 
				
			||||||
 | 
					    <dependencies>
 | 
				
			||||||
 | 
					        <deployment identifier="iOS"/>
 | 
				
			||||||
 | 
					        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
 | 
				
			||||||
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					    <scenes>
 | 
				
			||||||
 | 
					        <!--View Controller-->
 | 
				
			||||||
 | 
					        <scene sceneID="EHf-IW-A2E">
 | 
				
			||||||
 | 
					            <objects>
 | 
				
			||||||
 | 
					                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
 | 
				
			||||||
 | 
					                    <layoutGuides>
 | 
				
			||||||
 | 
					                        <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
 | 
				
			||||||
 | 
					                        <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
 | 
				
			||||||
 | 
					                    </layoutGuides>
 | 
				
			||||||
 | 
					                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
 | 
				
			||||||
 | 
					                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
 | 
				
			||||||
 | 
					                        <subviews>
 | 
				
			||||||
 | 
					                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
 | 
				
			||||||
 | 
					                            </imageView>
 | 
				
			||||||
 | 
					                        </subviews>
 | 
				
			||||||
 | 
					                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
 | 
				
			||||||
 | 
					                        <constraints>
 | 
				
			||||||
 | 
					                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
 | 
				
			||||||
 | 
					                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
 | 
				
			||||||
 | 
					                        </constraints>
 | 
				
			||||||
 | 
					                    </view>
 | 
				
			||||||
 | 
					                </viewController>
 | 
				
			||||||
 | 
					                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
 | 
				
			||||||
 | 
					            </objects>
 | 
				
			||||||
 | 
					            <point key="canvasLocation" x="53" y="375"/>
 | 
				
			||||||
 | 
					        </scene>
 | 
				
			||||||
 | 
					    </scenes>
 | 
				
			||||||
 | 
					    <resources>
 | 
				
			||||||
 | 
					        <image name="LaunchImage" width="168" height="185"/>
 | 
				
			||||||
 | 
					    </resources>
 | 
				
			||||||
 | 
					</document>
 | 
				
			||||||
							
								
								
									
										26
									
								
								ios/Runner/Base.lproj/Main.storyboard
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
				
			||||||
 | 
					<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
 | 
				
			||||||
 | 
					    <dependencies>
 | 
				
			||||||
 | 
					        <deployment identifier="iOS"/>
 | 
				
			||||||
 | 
					        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
 | 
				
			||||||
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					    <scenes>
 | 
				
			||||||
 | 
					        <!--Flutter View Controller-->
 | 
				
			||||||
 | 
					        <scene sceneID="tne-QT-ifu">
 | 
				
			||||||
 | 
					            <objects>
 | 
				
			||||||
 | 
					                <viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">
 | 
				
			||||||
 | 
					                    <layoutGuides>
 | 
				
			||||||
 | 
					                        <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
 | 
				
			||||||
 | 
					                        <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
 | 
				
			||||||
 | 
					                    </layoutGuides>
 | 
				
			||||||
 | 
					                    <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
 | 
				
			||||||
 | 
					                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
 | 
				
			||||||
 | 
					                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
 | 
				
			||||||
 | 
					                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
 | 
				
			||||||
 | 
					                    </view>
 | 
				
			||||||
 | 
					                </viewController>
 | 
				
			||||||
 | 
					                <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
 | 
				
			||||||
 | 
					            </objects>
 | 
				
			||||||
 | 
					        </scene>
 | 
				
			||||||
 | 
					    </scenes>
 | 
				
			||||||
 | 
					</document>
 | 
				
			||||||
							
								
								
									
										47
									
								
								ios/Runner/Info.plist
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,47 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
				
			||||||
 | 
					<plist version="1.0">
 | 
				
			||||||
 | 
					<dict>
 | 
				
			||||||
 | 
						<key>CFBundleDevelopmentRegion</key>
 | 
				
			||||||
 | 
						<string>$(DEVELOPMENT_LANGUAGE)</string>
 | 
				
			||||||
 | 
						<key>CFBundleDisplayName</key>
 | 
				
			||||||
 | 
						<string>Sqflite Pust Local Notification</string>
 | 
				
			||||||
 | 
						<key>CFBundleExecutable</key>
 | 
				
			||||||
 | 
						<string>$(EXECUTABLE_NAME)</string>
 | 
				
			||||||
 | 
						<key>CFBundleIdentifier</key>
 | 
				
			||||||
 | 
						<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
 | 
				
			||||||
 | 
						<key>CFBundleInfoDictionaryVersion</key>
 | 
				
			||||||
 | 
						<string>6.0</string>
 | 
				
			||||||
 | 
						<key>CFBundleName</key>
 | 
				
			||||||
 | 
						<string>sqflite_pust_local_notification</string>
 | 
				
			||||||
 | 
						<key>CFBundlePackageType</key>
 | 
				
			||||||
 | 
						<string>APPL</string>
 | 
				
			||||||
 | 
						<key>CFBundleShortVersionString</key>
 | 
				
			||||||
 | 
						<string>$(FLUTTER_BUILD_NAME)</string>
 | 
				
			||||||
 | 
						<key>CFBundleSignature</key>
 | 
				
			||||||
 | 
						<string>????</string>
 | 
				
			||||||
 | 
						<key>CFBundleVersion</key>
 | 
				
			||||||
 | 
						<string>$(FLUTTER_BUILD_NUMBER)</string>
 | 
				
			||||||
 | 
						<key>LSRequiresIPhoneOS</key>
 | 
				
			||||||
 | 
						<true/>
 | 
				
			||||||
 | 
						<key>UILaunchStoryboardName</key>
 | 
				
			||||||
 | 
						<string>LaunchScreen</string>
 | 
				
			||||||
 | 
						<key>UIMainStoryboardFile</key>
 | 
				
			||||||
 | 
						<string>Main</string>
 | 
				
			||||||
 | 
						<key>UISupportedInterfaceOrientations</key>
 | 
				
			||||||
 | 
						<array>
 | 
				
			||||||
 | 
							<string>UIInterfaceOrientationPortrait</string>
 | 
				
			||||||
 | 
							<string>UIInterfaceOrientationLandscapeLeft</string>
 | 
				
			||||||
 | 
							<string>UIInterfaceOrientationLandscapeRight</string>
 | 
				
			||||||
 | 
						</array>
 | 
				
			||||||
 | 
						<key>UISupportedInterfaceOrientations~ipad</key>
 | 
				
			||||||
 | 
						<array>
 | 
				
			||||||
 | 
							<string>UIInterfaceOrientationPortrait</string>
 | 
				
			||||||
 | 
							<string>UIInterfaceOrientationPortraitUpsideDown</string>
 | 
				
			||||||
 | 
							<string>UIInterfaceOrientationLandscapeLeft</string>
 | 
				
			||||||
 | 
							<string>UIInterfaceOrientationLandscapeRight</string>
 | 
				
			||||||
 | 
						</array>
 | 
				
			||||||
 | 
						<key>UIViewControllerBasedStatusBarAppearance</key>
 | 
				
			||||||
 | 
						<false/>
 | 
				
			||||||
 | 
					</dict>
 | 
				
			||||||
 | 
					</plist>
 | 
				
			||||||
							
								
								
									
										1
									
								
								ios/Runner/Runner-Bridging-Header.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					#import "GeneratedPluginRegistrant.h"
 | 
				
			||||||
							
								
								
									
										16
									
								
								lib/controllers/task_controller.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					import 'dart:ffi';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'package:get/get.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/db/db_helper.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/models/task_model.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TaskController extends GetxController {
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  void onReady() {
 | 
				
			||||||
 | 
					    super.onReady();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Future<int> addtask({TaskModel? task}) async {
 | 
				
			||||||
 | 
					    return await DBHelper.insert(task);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										39
									
								
								lib/db/db_helper.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					import 'package:sqflite/sqflite.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/models/task_model.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class DBHelper {
 | 
				
			||||||
 | 
					  static Database? _db;
 | 
				
			||||||
 | 
					  static final int _version = 1;
 | 
				
			||||||
 | 
					  static final String _tableName = "tbtask";
 | 
				
			||||||
 | 
					  static final String _DbName = "task.db";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  static Future<void> initDb() async {
 | 
				
			||||||
 | 
					    if (_db != null) {
 | 
				
			||||||
 | 
					      return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					      String _path = await getDatabasesPath() + _DbName;
 | 
				
			||||||
 | 
					      _db = await openDatabase(
 | 
				
			||||||
 | 
					        _path,
 | 
				
			||||||
 | 
					        version: _version,
 | 
				
			||||||
 | 
					        onCreate: (db, version) {
 | 
				
			||||||
 | 
					          return db.execute(
 | 
				
			||||||
 | 
					            "CREATE TABLE $_tableName("
 | 
				
			||||||
 | 
					            "id INTEGER PRIMARY KEY AUTOINCREMENT,"
 | 
				
			||||||
 | 
					            "title STRING, note TEXT, date STRING,"
 | 
				
			||||||
 | 
					            "startTime STRING, endTime STRING,"
 | 
				
			||||||
 | 
					            "remind INTEGER, repeat STRING,"
 | 
				
			||||||
 | 
					            "color INTEGER, "
 | 
				
			||||||
 | 
					            "isCompleted INTEGER)",
 | 
				
			||||||
 | 
					          );
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					    } catch (ex) {
 | 
				
			||||||
 | 
					      print(ex);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  static Future<int> insert(TaskModel? task) async {
 | 
				
			||||||
 | 
					    return await _db?.insert(_tableName, task!.toJson()) ?? 1;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										29
									
								
								lib/main.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					import 'package:get/get_navigation/src/root/get_material_app.dart';
 | 
				
			||||||
 | 
					import 'package:get_storage/get_storage.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/db/db_helper.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/services/theme_service.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/ui/my_home_screen.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/utils/theme.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Future<void> main() async {
 | 
				
			||||||
 | 
					  WidgetsFlutterBinding.ensureInitialized();
 | 
				
			||||||
 | 
					  await DBHelper.initDb();
 | 
				
			||||||
 | 
					  await GetStorage.init();
 | 
				
			||||||
 | 
					  runApp(const MyApp());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MyApp extends StatelessWidget {
 | 
				
			||||||
 | 
					  const MyApp({Key? key}) : super(key: key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // This widget is the root of your application.
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  Widget build(BuildContext context) {
 | 
				
			||||||
 | 
					    return GetMaterialApp(
 | 
				
			||||||
 | 
					        title: 'Flutter Demo',
 | 
				
			||||||
 | 
					        theme: Themes.light,
 | 
				
			||||||
 | 
					        darkTheme: Themes.dark,
 | 
				
			||||||
 | 
					        themeMode: ThemeService().theme,
 | 
				
			||||||
 | 
					        home: const MyHomeScreen());
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										53
									
								
								lib/models/task_model.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					class TaskModel {
 | 
				
			||||||
 | 
					  int? id;
 | 
				
			||||||
 | 
					  String? title;
 | 
				
			||||||
 | 
					  String? note;
 | 
				
			||||||
 | 
					  int? isCompleted;
 | 
				
			||||||
 | 
					  String? date;
 | 
				
			||||||
 | 
					  String? startTime;
 | 
				
			||||||
 | 
					  String? endTime;
 | 
				
			||||||
 | 
					  int? color;
 | 
				
			||||||
 | 
					  int? remind;
 | 
				
			||||||
 | 
					  String? repeat;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  TaskModel({
 | 
				
			||||||
 | 
					    this.id,
 | 
				
			||||||
 | 
					    this.title,
 | 
				
			||||||
 | 
					    this.note,
 | 
				
			||||||
 | 
					    this.isCompleted,
 | 
				
			||||||
 | 
					    this.date,
 | 
				
			||||||
 | 
					    this.startTime,
 | 
				
			||||||
 | 
					    this.endTime,
 | 
				
			||||||
 | 
					    this.color,
 | 
				
			||||||
 | 
					    this.remind,
 | 
				
			||||||
 | 
					    this.repeat,
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  TaskModel.fromJson(Map<String, dynamic> json) {
 | 
				
			||||||
 | 
					    id = json['id'];
 | 
				
			||||||
 | 
					    title = json['title'];
 | 
				
			||||||
 | 
					    note = json['note'];
 | 
				
			||||||
 | 
					    isCompleted = json['isCompleted'];
 | 
				
			||||||
 | 
					    date = json['date'];
 | 
				
			||||||
 | 
					    startTime = json['startTime'];
 | 
				
			||||||
 | 
					    endTime = json['endTime'];
 | 
				
			||||||
 | 
					    color = json['color'];
 | 
				
			||||||
 | 
					    remind = json['remind'];
 | 
				
			||||||
 | 
					    repeat = json['repeat'];
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Map<String, dynamic> toJson() {
 | 
				
			||||||
 | 
					    final Map<String, dynamic> data = <String, dynamic>{};
 | 
				
			||||||
 | 
					    data['id'] = id;
 | 
				
			||||||
 | 
					    data['title'] = title;
 | 
				
			||||||
 | 
					    data['note'] = note;
 | 
				
			||||||
 | 
					    data['isCompleted'] = isCompleted;
 | 
				
			||||||
 | 
					    data['date'] = date;
 | 
				
			||||||
 | 
					    data['startTime'] = startTime;
 | 
				
			||||||
 | 
					    data['endTime'] = endTime;
 | 
				
			||||||
 | 
					    data['color'] = color;
 | 
				
			||||||
 | 
					    data['remind'] = remind;
 | 
				
			||||||
 | 
					    data['repeat'] = repeat;
 | 
				
			||||||
 | 
					    return data;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										117
									
								
								lib/services/notification_service.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,117 @@
 | 
				
			|||||||
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					import 'package:flutter_local_notifications/flutter_local_notifications.dart';
 | 
				
			||||||
 | 
					import 'package:get/get.dart';
 | 
				
			||||||
 | 
					import 'package:timezone/data/latest.dart' as tz;
 | 
				
			||||||
 | 
					import 'package:timezone/timezone.dart' as tz;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class NotifyHelper {
 | 
				
			||||||
 | 
					  FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
 | 
				
			||||||
 | 
					      FlutterLocalNotificationsPlugin(); //
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  initializeNotification() async {
 | 
				
			||||||
 | 
					    tz.initializeTimeZones();
 | 
				
			||||||
 | 
					    final IOSInitializationSettings initializationSettingsIOS =
 | 
				
			||||||
 | 
					        IOSInitializationSettings(
 | 
				
			||||||
 | 
					            requestSoundPermission: false,
 | 
				
			||||||
 | 
					            requestBadgePermission: false,
 | 
				
			||||||
 | 
					            requestAlertPermission: false,
 | 
				
			||||||
 | 
					            onDidReceiveLocalNotification: onDidReceiveLocalNotification);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    final AndroidInitializationSettings initializationSettingsAndroid =
 | 
				
			||||||
 | 
					        AndroidInitializationSettings("appicon");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    final InitializationSettings initializationSettings =
 | 
				
			||||||
 | 
					        InitializationSettings(
 | 
				
			||||||
 | 
					      iOS: initializationSettingsIOS,
 | 
				
			||||||
 | 
					      android: initializationSettingsAndroid,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					    await flutterLocalNotificationsPlugin.initialize(initializationSettings,
 | 
				
			||||||
 | 
					        onSelectNotification: selectNotification);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Requeste Permission for IOS
 | 
				
			||||||
 | 
					  void requestIOSPermissions() {
 | 
				
			||||||
 | 
					    flutterLocalNotificationsPlugin
 | 
				
			||||||
 | 
					        .resolvePlatformSpecificImplementation<
 | 
				
			||||||
 | 
					            IOSFlutterLocalNotificationsPlugin>()
 | 
				
			||||||
 | 
					        ?.requestPermissions(
 | 
				
			||||||
 | 
					          alert: true,
 | 
				
			||||||
 | 
					          badge: true,
 | 
				
			||||||
 | 
					          sound: true,
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  displayNotification({required String title, required String body}) async {
 | 
				
			||||||
 | 
					    print("doing test");
 | 
				
			||||||
 | 
					    var androidPlatformChannelSpecifics = new AndroidNotificationDetails(
 | 
				
			||||||
 | 
					        'your channel id', 'your channel name',
 | 
				
			||||||
 | 
					        channelDescription: '',
 | 
				
			||||||
 | 
					        importance: Importance.max,
 | 
				
			||||||
 | 
					        priority: Priority.high);
 | 
				
			||||||
 | 
					    var iOSPlatformChannelSpecifics = new IOSNotificationDetails();
 | 
				
			||||||
 | 
					    var platformChannelSpecifics = new NotificationDetails(
 | 
				
			||||||
 | 
					        android: androidPlatformChannelSpecifics,
 | 
				
			||||||
 | 
					        iOS: iOSPlatformChannelSpecifics);
 | 
				
			||||||
 | 
					    await flutterLocalNotificationsPlugin.show(
 | 
				
			||||||
 | 
					      0,
 | 
				
			||||||
 | 
					      title,
 | 
				
			||||||
 | 
					      body,
 | 
				
			||||||
 | 
					      platformChannelSpecifics,
 | 
				
			||||||
 | 
					      payload: 'Default_Sound',
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  scheduledNotification() async {
 | 
				
			||||||
 | 
					    await flutterLocalNotificationsPlugin.zonedSchedule(
 | 
				
			||||||
 | 
					        0,
 | 
				
			||||||
 | 
					        'scheduled title',
 | 
				
			||||||
 | 
					        'theme changes 5 seconds ago',
 | 
				
			||||||
 | 
					        tz.TZDateTime.now(tz.local).add(const Duration(seconds: 5)),
 | 
				
			||||||
 | 
					        const NotificationDetails(
 | 
				
			||||||
 | 
					            android: AndroidNotificationDetails(
 | 
				
			||||||
 | 
					                'your channel id', 'your channel name',
 | 
				
			||||||
 | 
					                channelDescription: '')),
 | 
				
			||||||
 | 
					        androidAllowWhileIdle: true,
 | 
				
			||||||
 | 
					        uiLocalNotificationDateInterpretation:
 | 
				
			||||||
 | 
					            UILocalNotificationDateInterpretation.absoluteTime);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Future onDidReceiveLocalNotification(
 | 
				
			||||||
 | 
					      int id, String? title, String? body, String? payload) async {
 | 
				
			||||||
 | 
					    // display a dialog with the notification details, tap ok to go to another page
 | 
				
			||||||
 | 
					    // showDialog(
 | 
				
			||||||
 | 
					    //   //context: context,
 | 
				
			||||||
 | 
					    //   builder: (BuildContext context) => CupertinoAlertDialog(
 | 
				
			||||||
 | 
					    //     title: Text(title),
 | 
				
			||||||
 | 
					    //     content: Text(body),
 | 
				
			||||||
 | 
					    //     actions: [
 | 
				
			||||||
 | 
					    //       CupertinoDialogAction(
 | 
				
			||||||
 | 
					    //         isDefaultAction: true,
 | 
				
			||||||
 | 
					    //         child: Text('Ok'),
 | 
				
			||||||
 | 
					    //         onPressed: () async {
 | 
				
			||||||
 | 
					    //           Navigator.of(context, rootNavigator: true).pop();
 | 
				
			||||||
 | 
					    //           await Navigator.push(
 | 
				
			||||||
 | 
					    //             context,
 | 
				
			||||||
 | 
					    //             MaterialPageRoute(
 | 
				
			||||||
 | 
					    //               builder: (context) => SecondScreen(payload),
 | 
				
			||||||
 | 
					    //             ),
 | 
				
			||||||
 | 
					    //           );
 | 
				
			||||||
 | 
					    //         },
 | 
				
			||||||
 | 
					    //       )
 | 
				
			||||||
 | 
					    //     ],
 | 
				
			||||||
 | 
					    //   ),
 | 
				
			||||||
 | 
					    // );
 | 
				
			||||||
 | 
					    Get.dialog(Text("Welcome to Flutter"));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Future selectNotification(String? payload) async {
 | 
				
			||||||
 | 
					    if (payload != null) {
 | 
				
			||||||
 | 
					      print('notification payload: $payload');
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      print("Notification Done");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    Get.to(() => Container(
 | 
				
			||||||
 | 
					          color: Colors.white,
 | 
				
			||||||
 | 
					        ));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										16
									
								
								lib/services/theme_service.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					import 'package:get/get.dart';
 | 
				
			||||||
 | 
					import 'package:get_storage/get_storage.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ThemeService {
 | 
				
			||||||
 | 
					  final _box = GetStorage();
 | 
				
			||||||
 | 
					  final _key = "isDarkMode";
 | 
				
			||||||
 | 
					  _saveThemeToBox(bool isDarkMode) => _box.write(_key, isDarkMode);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  bool _loadThemeFromBox() => _box.read(_key) ?? false;
 | 
				
			||||||
 | 
					  ThemeMode get theme => _loadThemeFromBox() ? ThemeMode.dark : ThemeMode.light;
 | 
				
			||||||
 | 
					  void switchTheme() {
 | 
				
			||||||
 | 
					    Get.changeThemeMode(_loadThemeFromBox() ? ThemeMode.light : ThemeMode.dark);
 | 
				
			||||||
 | 
					    _saveThemeToBox(!_loadThemeFromBox());
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										318
									
								
								lib/ui/add_task_screen.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,318 @@
 | 
				
			|||||||
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					import 'package:get/get.dart';
 | 
				
			||||||
 | 
					import 'package:intl/intl.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/controllers/task_controller.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/models/task_model.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/utils/colors.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/utils/textStyles.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/widgets/my_button.dart';
 | 
				
			||||||
 | 
					import '../utils/assets_string.dart';
 | 
				
			||||||
 | 
					import '../widgets/my_input_field.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class AddTaskScreen extends StatefulWidget {
 | 
				
			||||||
 | 
					  const AddTaskScreen({Key? key}) : super(key: key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  State<AddTaskScreen> createState() => _AddTaskScreenState();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class _AddTaskScreenState extends State<AddTaskScreen> {
 | 
				
			||||||
 | 
					  final TaskController _taskController = Get.put(TaskController());
 | 
				
			||||||
 | 
					  final TextEditingController _titleController = TextEditingController();
 | 
				
			||||||
 | 
					  final TextEditingController _noteController = TextEditingController();
 | 
				
			||||||
 | 
					  DateTime _selectedDate = DateTime.now();
 | 
				
			||||||
 | 
					  String _endTime = "9:30 PM";
 | 
				
			||||||
 | 
					  String _startTime = DateFormat("hh:mm a").format(DateTime.now()).toString();
 | 
				
			||||||
 | 
					  int _selectedRemind = 5;
 | 
				
			||||||
 | 
					  List<int> remindList = [
 | 
				
			||||||
 | 
					    5,
 | 
				
			||||||
 | 
					    10,
 | 
				
			||||||
 | 
					    15,
 | 
				
			||||||
 | 
					    20,
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  String _selectedRepeat = "None";
 | 
				
			||||||
 | 
					  List<String> repeatList = [
 | 
				
			||||||
 | 
					    "None",
 | 
				
			||||||
 | 
					    "Daily",
 | 
				
			||||||
 | 
					    "Weekly",
 | 
				
			||||||
 | 
					    "Monthly",
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _selectedColor = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  Widget build(BuildContext context) {
 | 
				
			||||||
 | 
					    return Scaffold(
 | 
				
			||||||
 | 
					      backgroundColor: context.theme.backgroundColor,
 | 
				
			||||||
 | 
					      appBar: _appBar(context),
 | 
				
			||||||
 | 
					      body: Container(
 | 
				
			||||||
 | 
					        padding: const EdgeInsets.only(left: 20, right: 20),
 | 
				
			||||||
 | 
					        child: SingleChildScrollView(
 | 
				
			||||||
 | 
					          child: Column(children: [
 | 
				
			||||||
 | 
					            Text(
 | 
				
			||||||
 | 
					              "Add Task",
 | 
				
			||||||
 | 
					              style: headingStyle,
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					            MyInputField(
 | 
				
			||||||
 | 
					              title: "Title",
 | 
				
			||||||
 | 
					              hint: "Enter your title",
 | 
				
			||||||
 | 
					              controller: _titleController,
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					            MyInputField(
 | 
				
			||||||
 | 
					              title: "Note",
 | 
				
			||||||
 | 
					              hint: "Enter your note",
 | 
				
			||||||
 | 
					              controller: _noteController,
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					            MyInputField(
 | 
				
			||||||
 | 
					              title: "Date",
 | 
				
			||||||
 | 
					              hint: DateFormat.yMd().format(_selectedDate),
 | 
				
			||||||
 | 
					              widget: IconButton(
 | 
				
			||||||
 | 
					                icon: Icon(Icons.calendar_today_outlined),
 | 
				
			||||||
 | 
					                color: Colors.grey,
 | 
				
			||||||
 | 
					                onPressed: () {
 | 
				
			||||||
 | 
					                  _getDateFromUser();
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					              ),
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					            Row(
 | 
				
			||||||
 | 
					              children: [
 | 
				
			||||||
 | 
					                Expanded(
 | 
				
			||||||
 | 
					                    child: MyInputField(
 | 
				
			||||||
 | 
					                  title: "Start Time",
 | 
				
			||||||
 | 
					                  hint: _startTime,
 | 
				
			||||||
 | 
					                  widget: IconButton(
 | 
				
			||||||
 | 
					                    icon: Icon(Icons.access_time_outlined),
 | 
				
			||||||
 | 
					                    onPressed: () {
 | 
				
			||||||
 | 
					                      _getTimeFromUser(isStartTime: true);
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                  ),
 | 
				
			||||||
 | 
					                )),
 | 
				
			||||||
 | 
					                SizedBox(
 | 
				
			||||||
 | 
					                  width: 10,
 | 
				
			||||||
 | 
					                ),
 | 
				
			||||||
 | 
					                Expanded(
 | 
				
			||||||
 | 
					                    child: MyInputField(
 | 
				
			||||||
 | 
					                  title: "End Time",
 | 
				
			||||||
 | 
					                  hint: _endTime,
 | 
				
			||||||
 | 
					                  widget: IconButton(
 | 
				
			||||||
 | 
					                    icon: Icon(Icons.access_time_outlined),
 | 
				
			||||||
 | 
					                    onPressed: () {
 | 
				
			||||||
 | 
					                      _getTimeFromUser(isStartTime: false);
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                  ),
 | 
				
			||||||
 | 
					                )),
 | 
				
			||||||
 | 
					              ],
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					            MyInputField(
 | 
				
			||||||
 | 
					              title: "Remind",
 | 
				
			||||||
 | 
					              hint: "$_selectedRemind minutes early",
 | 
				
			||||||
 | 
					              widget: DropdownButton(
 | 
				
			||||||
 | 
					                icon: Icon(
 | 
				
			||||||
 | 
					                  Icons.keyboard_arrow_down,
 | 
				
			||||||
 | 
					                  color: Colors.grey,
 | 
				
			||||||
 | 
					                ),
 | 
				
			||||||
 | 
					                iconSize: 31,
 | 
				
			||||||
 | 
					                elevation: 4,
 | 
				
			||||||
 | 
					                style: subTitleStyle,
 | 
				
			||||||
 | 
					                underline: Container(height: 0),
 | 
				
			||||||
 | 
					                onChanged: (String? newValue) {
 | 
				
			||||||
 | 
					                  setState(() {
 | 
				
			||||||
 | 
					                    _selectedRemind = int.parse(newValue!);
 | 
				
			||||||
 | 
					                  });
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                items: remindList.map<DropdownMenuItem<String>>((int value) {
 | 
				
			||||||
 | 
					                  return DropdownMenuItem<String>(
 | 
				
			||||||
 | 
					                    value: value.toString(),
 | 
				
			||||||
 | 
					                    child: Text(value.toString()),
 | 
				
			||||||
 | 
					                  );
 | 
				
			||||||
 | 
					                }).toList(),
 | 
				
			||||||
 | 
					              ),
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					            MyInputField(
 | 
				
			||||||
 | 
					              title: "Repeat",
 | 
				
			||||||
 | 
					              hint: "$_selectedRepeat",
 | 
				
			||||||
 | 
					              widget: DropdownButton(
 | 
				
			||||||
 | 
					                icon: Icon(
 | 
				
			||||||
 | 
					                  Icons.keyboard_arrow_down,
 | 
				
			||||||
 | 
					                  color: Colors.grey,
 | 
				
			||||||
 | 
					                ),
 | 
				
			||||||
 | 
					                iconSize: 31,
 | 
				
			||||||
 | 
					                elevation: 4,
 | 
				
			||||||
 | 
					                style: subTitleStyle,
 | 
				
			||||||
 | 
					                underline: Container(height: 0),
 | 
				
			||||||
 | 
					                onChanged: (String? newValue) {
 | 
				
			||||||
 | 
					                  setState(() {
 | 
				
			||||||
 | 
					                    _selectedRepeat = newValue!;
 | 
				
			||||||
 | 
					                  });
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                items: repeatList.map<DropdownMenuItem<String>>((String value) {
 | 
				
			||||||
 | 
					                  return DropdownMenuItem<String>(
 | 
				
			||||||
 | 
					                    value: value.toString(),
 | 
				
			||||||
 | 
					                    child: Text(
 | 
				
			||||||
 | 
					                      value.toString(),
 | 
				
			||||||
 | 
					                      style: TextStyle(color: Colors.grey),
 | 
				
			||||||
 | 
					                    ),
 | 
				
			||||||
 | 
					                  );
 | 
				
			||||||
 | 
					                }).toList(),
 | 
				
			||||||
 | 
					              ),
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					            SizedBox(
 | 
				
			||||||
 | 
					              height: 10,
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					            Row(
 | 
				
			||||||
 | 
					              mainAxisAlignment: MainAxisAlignment.spaceBetween,
 | 
				
			||||||
 | 
					              crossAxisAlignment: CrossAxisAlignment.center,
 | 
				
			||||||
 | 
					              children: [
 | 
				
			||||||
 | 
					                _colorPallete(),
 | 
				
			||||||
 | 
					                MyButton(label: "Create Task", onTap: () => _validateDate())
 | 
				
			||||||
 | 
					              ],
 | 
				
			||||||
 | 
					            )
 | 
				
			||||||
 | 
					          ]),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _validateDate() {
 | 
				
			||||||
 | 
					    if (_titleController.text.isNotEmpty && _noteController.text.isNotEmpty) {
 | 
				
			||||||
 | 
					      _addTaskToDb();
 | 
				
			||||||
 | 
					      Get.back();
 | 
				
			||||||
 | 
					    } else if (_titleController.text.isEmpty || _noteController.text.isEmpty) {
 | 
				
			||||||
 | 
					      Get.snackbar(
 | 
				
			||||||
 | 
					        "Required",
 | 
				
			||||||
 | 
					        "All fields are required",
 | 
				
			||||||
 | 
					        snackPosition: SnackPosition.BOTTOM,
 | 
				
			||||||
 | 
					        backgroundColor: Colors.white,
 | 
				
			||||||
 | 
					        colorText: pinkClr,
 | 
				
			||||||
 | 
					        icon: Icon(
 | 
				
			||||||
 | 
					          Icons.warning_amber_rounded,
 | 
				
			||||||
 | 
					          color: Colors.red,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _addTaskToDb() async {
 | 
				
			||||||
 | 
					    int value = await _taskController.addtask(
 | 
				
			||||||
 | 
					        task: TaskModel(
 | 
				
			||||||
 | 
					            note: _noteController.text,
 | 
				
			||||||
 | 
					            title: _titleController.text,
 | 
				
			||||||
 | 
					            date: DateFormat.yMd().format(_selectedDate),
 | 
				
			||||||
 | 
					            startTime: _startTime,
 | 
				
			||||||
 | 
					            endTime: _endTime,
 | 
				
			||||||
 | 
					            remind: _selectedRemind,
 | 
				
			||||||
 | 
					            repeat: _selectedRepeat,
 | 
				
			||||||
 | 
					            color: _selectedColor,
 | 
				
			||||||
 | 
					            isCompleted: 0));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _colorPallete() {
 | 
				
			||||||
 | 
					    return Column(
 | 
				
			||||||
 | 
					      crossAxisAlignment: CrossAxisAlignment.start,
 | 
				
			||||||
 | 
					      children: [
 | 
				
			||||||
 | 
					        Text(
 | 
				
			||||||
 | 
					          "Color",
 | 
				
			||||||
 | 
					          style: titleStyle,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        SizedBox(
 | 
				
			||||||
 | 
					          height: 8,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        Wrap(
 | 
				
			||||||
 | 
					          children: List<Widget>.generate(3, (int index) {
 | 
				
			||||||
 | 
					            return GestureDetector(
 | 
				
			||||||
 | 
					              onTap: () {
 | 
				
			||||||
 | 
					                setState(() {
 | 
				
			||||||
 | 
					                  _selectedColor = index;
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					              },
 | 
				
			||||||
 | 
					              child: Padding(
 | 
				
			||||||
 | 
					                padding: const EdgeInsets.only(right: 8.0),
 | 
				
			||||||
 | 
					                child: CircleAvatar(
 | 
				
			||||||
 | 
					                  child: _selectedColor == index
 | 
				
			||||||
 | 
					                      ? Icon(
 | 
				
			||||||
 | 
					                          Icons.done,
 | 
				
			||||||
 | 
					                          color: Colors.white,
 | 
				
			||||||
 | 
					                          size: 16,
 | 
				
			||||||
 | 
					                        )
 | 
				
			||||||
 | 
					                      : Container(),
 | 
				
			||||||
 | 
					                  radius: 14,
 | 
				
			||||||
 | 
					                  backgroundColor: index == 0
 | 
				
			||||||
 | 
					                      ? primaryClr
 | 
				
			||||||
 | 
					                      : index == 1
 | 
				
			||||||
 | 
					                          ? pinkClr
 | 
				
			||||||
 | 
					                          : yellowClr,
 | 
				
			||||||
 | 
					                ),
 | 
				
			||||||
 | 
					              ),
 | 
				
			||||||
 | 
					            );
 | 
				
			||||||
 | 
					          }),
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _appBar(BuildContext context) {
 | 
				
			||||||
 | 
					    return AppBar(
 | 
				
			||||||
 | 
					      elevation: 0,
 | 
				
			||||||
 | 
					      backgroundColor: context.theme.backgroundColor,
 | 
				
			||||||
 | 
					      leading: GestureDetector(
 | 
				
			||||||
 | 
					        onTap: () {
 | 
				
			||||||
 | 
					          Get.back();
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        child: Icon(Icons.arrow_back_ios,
 | 
				
			||||||
 | 
					            size: 20, color: Get.isDarkMode ? Colors.white : Colors.black),
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      actions: [
 | 
				
			||||||
 | 
					        CircleAvatar(
 | 
				
			||||||
 | 
					          backgroundImage: AssetImage(profile),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        SizedBox(
 | 
				
			||||||
 | 
					          width: 20,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _getDateFromUser() async {
 | 
				
			||||||
 | 
					    DateTime? _pickerDate = await showDatePicker(
 | 
				
			||||||
 | 
					        context: context,
 | 
				
			||||||
 | 
					        initialDate: DateTime.now(),
 | 
				
			||||||
 | 
					        firstDate: DateTime(2015),
 | 
				
			||||||
 | 
					        lastDate: DateTime(3000));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (_pickerDate != null) {
 | 
				
			||||||
 | 
					      setState(() {
 | 
				
			||||||
 | 
					        _selectedDate = _pickerDate;
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      setState(() {
 | 
				
			||||||
 | 
					        _selectedDate = _selectedDate;
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _getTimeFromUser({required bool isStartTime}) async {
 | 
				
			||||||
 | 
					    var pickedTime = await _showTimePicker();
 | 
				
			||||||
 | 
					    String _formatedTime = pickedTime.format(context);
 | 
				
			||||||
 | 
					    if (pickedTime == null) {
 | 
				
			||||||
 | 
					    } else if (isStartTime == true) {
 | 
				
			||||||
 | 
					      setState(() {
 | 
				
			||||||
 | 
					        _startTime = _formatedTime;
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    } else if (isStartTime == false) {
 | 
				
			||||||
 | 
					      setState(() {
 | 
				
			||||||
 | 
					        _endTime = _formatedTime;
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _showTimePicker() {
 | 
				
			||||||
 | 
					    return showTimePicker(
 | 
				
			||||||
 | 
					        context: context,
 | 
				
			||||||
 | 
					        initialEntryMode: TimePickerEntryMode.input,
 | 
				
			||||||
 | 
					        initialTime: TimeOfDay(
 | 
				
			||||||
 | 
					            //_startTime ---->
 | 
				
			||||||
 | 
					            hour: int.parse(_startTime.split(":")[0]),
 | 
				
			||||||
 | 
					            minute: int.parse(_startTime.split(":")[1].split(" ")[0])));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										119
									
								
								lib/ui/my_home_screen.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,119 @@
 | 
				
			|||||||
 | 
					import 'package:date_picker_timeline/date_picker_timeline.dart';
 | 
				
			||||||
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					import 'package:get/get.dart';
 | 
				
			||||||
 | 
					import 'package:intl/intl.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/services/notification_service.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/services/theme_service.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/ui/add_task_screen.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/utils/assets_string.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/utils/colors.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/widgets/my_button.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import '../utils/textStyles.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MyHomeScreen extends StatefulWidget {
 | 
				
			||||||
 | 
					  const MyHomeScreen({Key? key}) : super(key: key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  State<MyHomeScreen> createState() => _MyHomeScreenState();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class _MyHomeScreenState extends State<MyHomeScreen> {
 | 
				
			||||||
 | 
					  DateTime _selectedDate = DateTime.now();
 | 
				
			||||||
 | 
					  var notifyHelper;
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  void initState() {
 | 
				
			||||||
 | 
					    // TODO: implement initState
 | 
				
			||||||
 | 
					    super.initState();
 | 
				
			||||||
 | 
					    notifyHelper = NotifyHelper();
 | 
				
			||||||
 | 
					    notifyHelper.initializeNotification();
 | 
				
			||||||
 | 
					    notifyHelper.requestIOSPermissions();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  Widget build(BuildContext context) {
 | 
				
			||||||
 | 
					    return Scaffold(
 | 
				
			||||||
 | 
					      appBar: _appBar(),
 | 
				
			||||||
 | 
					      backgroundColor: context.theme.backgroundColor,
 | 
				
			||||||
 | 
					      body: Column(children: [_appTaskBar(), _addDateBar()]),
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _appBar() {
 | 
				
			||||||
 | 
					    return AppBar(
 | 
				
			||||||
 | 
					      elevation: 0,
 | 
				
			||||||
 | 
					      backgroundColor: context.theme.backgroundColor,
 | 
				
			||||||
 | 
					      leading: GestureDetector(
 | 
				
			||||||
 | 
					        onTap: () {
 | 
				
			||||||
 | 
					          ThemeService().switchTheme();
 | 
				
			||||||
 | 
					          notifyHelper.displayNotification(
 | 
				
			||||||
 | 
					              title: "Theme Change",
 | 
				
			||||||
 | 
					              body: Get.isDarkMode
 | 
				
			||||||
 | 
					                  ? "Activated Light Mode"
 | 
				
			||||||
 | 
					                  : "Activated Dark Mode");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          notifyHelper.scheduledNotification();
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        child: Icon(
 | 
				
			||||||
 | 
					            Get.isDarkMode ? Icons.wb_sunny_outlined : Icons.nightlight_round,
 | 
				
			||||||
 | 
					            size: 20,
 | 
				
			||||||
 | 
					            color: Get.isDarkMode ? Colors.white : Colors.black),
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					      actions: const [
 | 
				
			||||||
 | 
					        CircleAvatar(
 | 
				
			||||||
 | 
					          backgroundImage: AssetImage(profile),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        SizedBox(
 | 
				
			||||||
 | 
					          width: 20,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _appTaskBar() {
 | 
				
			||||||
 | 
					    return Container(
 | 
				
			||||||
 | 
					      margin: const EdgeInsets.only(left: 20, right: 20, top: 10),
 | 
				
			||||||
 | 
					      child: Row(
 | 
				
			||||||
 | 
					        mainAxisAlignment: MainAxisAlignment.spaceBetween,
 | 
				
			||||||
 | 
					        children: [
 | 
				
			||||||
 | 
					          Container(
 | 
				
			||||||
 | 
					            child: Column(
 | 
				
			||||||
 | 
					              crossAxisAlignment: CrossAxisAlignment.start,
 | 
				
			||||||
 | 
					              children: [
 | 
				
			||||||
 | 
					                Text(
 | 
				
			||||||
 | 
					                  DateFormat.yMMMd().format(DateTime.now()),
 | 
				
			||||||
 | 
					                  style: headingStyle,
 | 
				
			||||||
 | 
					                ),
 | 
				
			||||||
 | 
					                Text(
 | 
				
			||||||
 | 
					                  "Today",
 | 
				
			||||||
 | 
					                  style: subHeadingStyle,
 | 
				
			||||||
 | 
					                )
 | 
				
			||||||
 | 
					              ],
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					          ),
 | 
				
			||||||
 | 
					          MyButton(label: "+ Add Task", onTap: () => Get.to(AddTaskScreen()))
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _addDateBar() {
 | 
				
			||||||
 | 
					    return Container(
 | 
				
			||||||
 | 
					      margin: const EdgeInsets.only(top: 20, left: 20),
 | 
				
			||||||
 | 
					      child: DatePicker(
 | 
				
			||||||
 | 
					        DateTime.now(),
 | 
				
			||||||
 | 
					        height: 100,
 | 
				
			||||||
 | 
					        width: 80,
 | 
				
			||||||
 | 
					        initialSelectedDate: DateTime.now(),
 | 
				
			||||||
 | 
					        selectionColor: primaryClr,
 | 
				
			||||||
 | 
					        selectedTextColor: Colors.white,
 | 
				
			||||||
 | 
					        dateTextStyle: datePickerTextStyle,
 | 
				
			||||||
 | 
					        dayTextStyle: datePickerTextStyle,
 | 
				
			||||||
 | 
					        monthTextStyle: datePickerTextStyle,
 | 
				
			||||||
 | 
					        onDateChange: (Date) {
 | 
				
			||||||
 | 
					          _selectedDate = Date;
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										1
									
								
								lib/utils/assets_string.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					const String profile = "assets/images/profile.png";
 | 
				
			||||||
							
								
								
									
										11
									
								
								lib/utils/colors.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const Color bluishClr = Color(0xFF00bfff);
 | 
				
			||||||
 | 
					const Color yellowClr = Color(0xFFf8de7e);
 | 
				
			||||||
 | 
					const Color whiteClr = Color(0xFFffffff);
 | 
				
			||||||
 | 
					const Color pinkClr = Color(0xFFffc0cb);
 | 
				
			||||||
 | 
					const Color darkgratClr = Color(0xFFdcdcdc);
 | 
				
			||||||
 | 
					const Color blackClr = Color(0xFF000000);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const primaryClr = bluishClr;
 | 
				
			||||||
 | 
					const secondaryClr = darkgratClr;
 | 
				
			||||||
							
								
								
									
										39
									
								
								lib/utils/textStyles.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					import 'package:get/get.dart';
 | 
				
			||||||
 | 
					import 'package:google_fonts/google_fonts.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TextStyle get subHeadingStyle {
 | 
				
			||||||
 | 
					  return GoogleFonts.lato(
 | 
				
			||||||
 | 
					      textStyle: TextStyle(
 | 
				
			||||||
 | 
					          fontSize: 18,
 | 
				
			||||||
 | 
					          fontWeight: FontWeight.bold,
 | 
				
			||||||
 | 
					          color: Get.isDarkMode ? Colors.grey[400] : Colors.grey));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TextStyle get headingStyle {
 | 
				
			||||||
 | 
					  return GoogleFonts.lato(
 | 
				
			||||||
 | 
					      textStyle: const TextStyle(fontSize: 24, fontWeight: FontWeight.bold));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TextStyle get datePickerTextStyle {
 | 
				
			||||||
 | 
					  return GoogleFonts.lato(
 | 
				
			||||||
 | 
					    textStyle: const TextStyle(
 | 
				
			||||||
 | 
					        fontSize: 20, fontWeight: FontWeight.w600, color: Colors.grey),
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TextStyle get titleStyle {
 | 
				
			||||||
 | 
					  return GoogleFonts.lato(
 | 
				
			||||||
 | 
					      textStyle: TextStyle(
 | 
				
			||||||
 | 
					          fontSize: 16,
 | 
				
			||||||
 | 
					          fontWeight: FontWeight.w600,
 | 
				
			||||||
 | 
					          color: Get.isDarkMode ? Colors.white : Colors.black));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TextStyle get subTitleStyle {
 | 
				
			||||||
 | 
					  return GoogleFonts.lato(
 | 
				
			||||||
 | 
					      textStyle: TextStyle(
 | 
				
			||||||
 | 
					          fontSize: 14,
 | 
				
			||||||
 | 
					          fontWeight: FontWeight.w600,
 | 
				
			||||||
 | 
					          color: Get.isDarkMode ? Colors.grey[100] : Colors.grey[400]));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										14
									
								
								lib/utils/theme.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/utils/colors.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Themes {
 | 
				
			||||||
 | 
					  static final light = ThemeData(
 | 
				
			||||||
 | 
					      backgroundColor: whiteClr,
 | 
				
			||||||
 | 
					      primarySwatch: Colors.blue,
 | 
				
			||||||
 | 
					      brightness: Brightness.light);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  static final dark = ThemeData(
 | 
				
			||||||
 | 
					      backgroundColor: blackClr,
 | 
				
			||||||
 | 
					      primarySwatch: Colors.grey,
 | 
				
			||||||
 | 
					      brightness: Brightness.dark);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										32
									
								
								lib/widgets/my_button.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					import 'package:flutter/cupertino.dart';
 | 
				
			||||||
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					import 'package:flutter/src/foundation/key.dart';
 | 
				
			||||||
 | 
					import 'package:flutter/src/widgets/framework.dart';
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/utils/colors.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MyButton extends StatelessWidget {
 | 
				
			||||||
 | 
					  final String label;
 | 
				
			||||||
 | 
					  final Function()? onTap;
 | 
				
			||||||
 | 
					  const MyButton({Key? key, required this.label, required this.onTap})
 | 
				
			||||||
 | 
					      : super(key: key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  Widget build(BuildContext context) {
 | 
				
			||||||
 | 
					    return GestureDetector(
 | 
				
			||||||
 | 
					      onTap: onTap,
 | 
				
			||||||
 | 
					      child: Container(
 | 
				
			||||||
 | 
					        alignment: Alignment.center,
 | 
				
			||||||
 | 
					        width: 120,
 | 
				
			||||||
 | 
					        height: 50,
 | 
				
			||||||
 | 
					        decoration: BoxDecoration(
 | 
				
			||||||
 | 
					            borderRadius: BorderRadius.circular(20), color: primaryClr),
 | 
				
			||||||
 | 
					        child: Text(
 | 
				
			||||||
 | 
					          label,
 | 
				
			||||||
 | 
					          textAlign: TextAlign.center,
 | 
				
			||||||
 | 
					          style: TextStyle(
 | 
				
			||||||
 | 
					              color: Colors.white, fontSize: 15, fontWeight: FontWeight.bold),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					      ),
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										69
									
								
								lib/widgets/my_input_field.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,69 @@
 | 
				
			|||||||
 | 
					import 'package:flutter/cupertino.dart';
 | 
				
			||||||
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					import 'package:flutter/src/foundation/key.dart';
 | 
				
			||||||
 | 
					import 'package:flutter/src/widgets/framework.dart';
 | 
				
			||||||
 | 
					import 'package:get/get.dart';
 | 
				
			||||||
 | 
					import '../utils/textStyles.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MyInputField extends StatelessWidget {
 | 
				
			||||||
 | 
					  final String title;
 | 
				
			||||||
 | 
					  final String hint;
 | 
				
			||||||
 | 
					  final TextEditingController? controller;
 | 
				
			||||||
 | 
					  final Widget? widget;
 | 
				
			||||||
 | 
					  const MyInputField(
 | 
				
			||||||
 | 
					      {Key? key,
 | 
				
			||||||
 | 
					      required this.title,
 | 
				
			||||||
 | 
					      required this.hint,
 | 
				
			||||||
 | 
					      this.controller,
 | 
				
			||||||
 | 
					      this.widget})
 | 
				
			||||||
 | 
					      : super(key: key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override
 | 
				
			||||||
 | 
					  Widget build(BuildContext context) {
 | 
				
			||||||
 | 
					    return Container(
 | 
				
			||||||
 | 
					        margin: const EdgeInsets.only(top: 10),
 | 
				
			||||||
 | 
					        child: Column(
 | 
				
			||||||
 | 
					          crossAxisAlignment: CrossAxisAlignment.start,
 | 
				
			||||||
 | 
					          children: [
 | 
				
			||||||
 | 
					            Text(
 | 
				
			||||||
 | 
					              title,
 | 
				
			||||||
 | 
					              style: titleStyle,
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					            Container(
 | 
				
			||||||
 | 
					              height: 52,
 | 
				
			||||||
 | 
					              margin: const EdgeInsets.only(top: 8.0),
 | 
				
			||||||
 | 
					              padding: const EdgeInsets.only(left: 14),
 | 
				
			||||||
 | 
					              decoration: BoxDecoration(
 | 
				
			||||||
 | 
					                  border: Border.all(color: Colors.grey, width: 1.0),
 | 
				
			||||||
 | 
					                  borderRadius: BorderRadius.circular(12)),
 | 
				
			||||||
 | 
					              child: Row(children: [
 | 
				
			||||||
 | 
					                Expanded(
 | 
				
			||||||
 | 
					                    child: TextFormField(
 | 
				
			||||||
 | 
					                  readOnly: widget == null ? false : true,
 | 
				
			||||||
 | 
					                  autofocus: false,
 | 
				
			||||||
 | 
					                  cursorColor:
 | 
				
			||||||
 | 
					                      Get.isDarkMode ? Colors.green[100] : Colors.grey[700],
 | 
				
			||||||
 | 
					                  controller: controller,
 | 
				
			||||||
 | 
					                  style: subTitleStyle,
 | 
				
			||||||
 | 
					                  decoration: InputDecoration(
 | 
				
			||||||
 | 
					                    hintText: hint,
 | 
				
			||||||
 | 
					                    hintStyle: subTitleStyle,
 | 
				
			||||||
 | 
					                    focusedBorder: UnderlineInputBorder(
 | 
				
			||||||
 | 
					                        borderSide: BorderSide(
 | 
				
			||||||
 | 
					                            color: context.theme.backgroundColor, width: 0)),
 | 
				
			||||||
 | 
					                    enabledBorder: UnderlineInputBorder(
 | 
				
			||||||
 | 
					                        borderSide: BorderSide(
 | 
				
			||||||
 | 
					                            color: context.theme.backgroundColor, width: 0)),
 | 
				
			||||||
 | 
					                  ),
 | 
				
			||||||
 | 
					                )),
 | 
				
			||||||
 | 
					                widget == null
 | 
				
			||||||
 | 
					                    ? Container()
 | 
				
			||||||
 | 
					                    : Container(
 | 
				
			||||||
 | 
					                        child: widget,
 | 
				
			||||||
 | 
					                      )
 | 
				
			||||||
 | 
					              ]),
 | 
				
			||||||
 | 
					            )
 | 
				
			||||||
 | 
					          ],
 | 
				
			||||||
 | 
					        ));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										425
									
								
								pubspec.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,425 @@
 | 
				
			|||||||
 | 
					# Generated by pub
 | 
				
			||||||
 | 
					# See https://dart.dev/tools/pub/glossary#lockfile
 | 
				
			||||||
 | 
					packages:
 | 
				
			||||||
 | 
					  args:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: args
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.3.1"
 | 
				
			||||||
 | 
					  async:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: async
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.8.2"
 | 
				
			||||||
 | 
					  boolean_selector:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: boolean_selector
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.1.0"
 | 
				
			||||||
 | 
					  characters:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: characters
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.2.0"
 | 
				
			||||||
 | 
					  charcode:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: charcode
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.3.1"
 | 
				
			||||||
 | 
					  clock:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: clock
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.1.0"
 | 
				
			||||||
 | 
					  collection:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: collection
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.16.0"
 | 
				
			||||||
 | 
					  crypto:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: crypto
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "3.0.2"
 | 
				
			||||||
 | 
					  cupertino_icons:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: cupertino_icons
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.0.5"
 | 
				
			||||||
 | 
					  date_picker_timeline:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: date_picker_timeline
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.2.3"
 | 
				
			||||||
 | 
					  dbus:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: dbus
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.7.5"
 | 
				
			||||||
 | 
					  fake_async:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: fake_async
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.3.0"
 | 
				
			||||||
 | 
					  ffi:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: ffi
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.0.1"
 | 
				
			||||||
 | 
					  file:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: file
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "6.1.2"
 | 
				
			||||||
 | 
					  flutter:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description: flutter
 | 
				
			||||||
 | 
					    source: sdk
 | 
				
			||||||
 | 
					    version: "0.0.0"
 | 
				
			||||||
 | 
					  flutter_lints:
 | 
				
			||||||
 | 
					    dependency: "direct dev"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: flutter_lints
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.0.4"
 | 
				
			||||||
 | 
					  flutter_local_notifications:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: flutter_local_notifications
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "9.6.1"
 | 
				
			||||||
 | 
					  flutter_local_notifications_linux:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: flutter_local_notifications_linux
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.5.0+1"
 | 
				
			||||||
 | 
					  flutter_local_notifications_platform_interface:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: flutter_local_notifications_platform_interface
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "5.0.0"
 | 
				
			||||||
 | 
					  flutter_native_timezone:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: flutter_native_timezone
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.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"
 | 
				
			||||||
 | 
					  get:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: get
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "4.6.5"
 | 
				
			||||||
 | 
					  get_storage:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: get_storage
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.0.3"
 | 
				
			||||||
 | 
					  google_fonts:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: google_fonts
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "3.0.1"
 | 
				
			||||||
 | 
					  http:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: http
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.13.4"
 | 
				
			||||||
 | 
					  http_parser:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: http_parser
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "4.0.1"
 | 
				
			||||||
 | 
					  intl:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: intl
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.17.0"
 | 
				
			||||||
 | 
					  js:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: js
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.6.4"
 | 
				
			||||||
 | 
					  lints:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: lints
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.0.1"
 | 
				
			||||||
 | 
					  matcher:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: matcher
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.12.11"
 | 
				
			||||||
 | 
					  material_color_utilities:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: material_color_utilities
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.1.4"
 | 
				
			||||||
 | 
					  meta:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: meta
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.7.0"
 | 
				
			||||||
 | 
					  path:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: path
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.8.1"
 | 
				
			||||||
 | 
					  path_provider:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: path_provider
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.0.11"
 | 
				
			||||||
 | 
					  path_provider_android:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: path_provider_android
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.0.15"
 | 
				
			||||||
 | 
					  path_provider_ios:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: path_provider_ios
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.0.10"
 | 
				
			||||||
 | 
					  path_provider_linux:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: path_provider_linux
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.1.7"
 | 
				
			||||||
 | 
					  path_provider_macos:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: path_provider_macos
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.0.6"
 | 
				
			||||||
 | 
					  path_provider_platform_interface:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: path_provider_platform_interface
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.0.4"
 | 
				
			||||||
 | 
					  path_provider_windows:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: path_provider_windows
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.1.0"
 | 
				
			||||||
 | 
					  petitparser:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: petitparser
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "5.0.0"
 | 
				
			||||||
 | 
					  platform:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: platform
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "3.1.0"
 | 
				
			||||||
 | 
					  plugin_platform_interface:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: plugin_platform_interface
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.1.2"
 | 
				
			||||||
 | 
					  process:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: process
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "4.2.4"
 | 
				
			||||||
 | 
					  sky_engine:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description: flutter
 | 
				
			||||||
 | 
					    source: sdk
 | 
				
			||||||
 | 
					    version: "0.0.99"
 | 
				
			||||||
 | 
					  source_span:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: source_span
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.8.2"
 | 
				
			||||||
 | 
					  sqflite:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: sqflite
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.0.2+1"
 | 
				
			||||||
 | 
					  sqflite_common:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: sqflite_common
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.2.1+1"
 | 
				
			||||||
 | 
					  stack_trace:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: stack_trace
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.10.0"
 | 
				
			||||||
 | 
					  stream_channel:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: stream_channel
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.1.0"
 | 
				
			||||||
 | 
					  string_scanner:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: string_scanner
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.1.0"
 | 
				
			||||||
 | 
					  synchronized:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: synchronized
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "3.0.0+2"
 | 
				
			||||||
 | 
					  term_glyph:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: term_glyph
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.2.0"
 | 
				
			||||||
 | 
					  test_api:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: test_api
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.4.9"
 | 
				
			||||||
 | 
					  timezone:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: timezone
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.8.0"
 | 
				
			||||||
 | 
					  typed_data:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: typed_data
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "1.3.1"
 | 
				
			||||||
 | 
					  vector_math:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: vector_math
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.1.2"
 | 
				
			||||||
 | 
					  win32:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: win32
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "2.7.0"
 | 
				
			||||||
 | 
					  xdg_directories:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: xdg_directories
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.2.0+1"
 | 
				
			||||||
 | 
					  xml:
 | 
				
			||||||
 | 
					    dependency: transitive
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: xml
 | 
				
			||||||
 | 
					      url: "https://pub.dartlang.org"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "6.1.0"
 | 
				
			||||||
 | 
					sdks:
 | 
				
			||||||
 | 
					  dart: ">=2.17.0 <3.0.0"
 | 
				
			||||||
 | 
					  flutter: ">=3.0.0"
 | 
				
			||||||
							
								
								
									
										96
									
								
								pubspec.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,96 @@
 | 
				
			|||||||
 | 
					name: sqflite_pust_local_notification
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The following defines the version and build number for your application.
 | 
				
			||||||
 | 
					# A version number is three numbers separated by dots, like 1.2.43
 | 
				
			||||||
 | 
					# followed by an optional build number separated by a +.
 | 
				
			||||||
 | 
					# Both the version and the builder number may be overridden in flutter
 | 
				
			||||||
 | 
					# build by specifying --build-name and --build-number, respectively.
 | 
				
			||||||
 | 
					# In Android, build-name is used as versionName while build-number used as versionCode.
 | 
				
			||||||
 | 
					# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
 | 
				
			||||||
 | 
					# 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					environment:
 | 
				
			||||||
 | 
					  sdk: ">=2.16.2 <3.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Dependencies specify other packages that your package needs in order to work.
 | 
				
			||||||
 | 
					# To automatically upgrade your package dependencies to the latest versions
 | 
				
			||||||
 | 
					# consider running `flutter pub upgrade --major-versions`. Alternatively,
 | 
				
			||||||
 | 
					# dependencies can be manually updated by changing the version numbers below to
 | 
				
			||||||
 | 
					# the latest version available on pub.dev. To see which dependencies have newer
 | 
				
			||||||
 | 
					# versions available, run `flutter pub outdated`.
 | 
				
			||||||
 | 
					dependencies:
 | 
				
			||||||
 | 
					  flutter:
 | 
				
			||||||
 | 
					    sdk: flutter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # The following adds the Cupertino Icons font to your application.
 | 
				
			||||||
 | 
					  # Use with the CupertinoIcons class for iOS style icons.
 | 
				
			||||||
 | 
					  cupertino_icons: ^1.0.2
 | 
				
			||||||
 | 
					  get_storage: ^2.0.3
 | 
				
			||||||
 | 
					  get: ^4.6.5
 | 
				
			||||||
 | 
					  flutter_local_notifications: ^9.6.0
 | 
				
			||||||
 | 
					  flutter_native_timezone: ^2.0.0
 | 
				
			||||||
 | 
					  intl: ^0.17.0
 | 
				
			||||||
 | 
					  google_fonts: ^3.0.1
 | 
				
			||||||
 | 
					  date_picker_timeline: ^1.2.3 
 | 
				
			||||||
 | 
					  sqflite: ^2.0.2+1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dev_dependencies:
 | 
				
			||||||
 | 
					  flutter_test:
 | 
				
			||||||
 | 
					    sdk: flutter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # 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
 | 
				
			||||||
 | 
					  # package. See that file for information about deactivating specific lint
 | 
				
			||||||
 | 
					  # rules and activating additional ones.
 | 
				
			||||||
 | 
					  flutter_lints: ^1.0.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# For information on the generic Dart part of this file, see the
 | 
				
			||||||
 | 
					# following page: https://dart.dev/tools/pub/pubspec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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.
 | 
				
			||||||
 | 
					  uses-material-design: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # To add assets to your application, add an assets section, like this:
 | 
				
			||||||
 | 
					  assets:
 | 
				
			||||||
 | 
					     - assets/images/profile.png
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # An image asset can refer to one or more resolution-specific "variants", see
 | 
				
			||||||
 | 
					  # https://flutter.dev/assets-and-images/#resolution-aware.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # For details regarding adding assets from package dependencies, see
 | 
				
			||||||
 | 
					  # https://flutter.dev/assets-and-images/#from-packages
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # To add custom fonts to your application, add a fonts section here,
 | 
				
			||||||
 | 
					  # in this "flutter" section. Each entry in this list should have a
 | 
				
			||||||
 | 
					  # "family" key with the font family name, and a "fonts" key with a
 | 
				
			||||||
 | 
					  # list giving the asset and other descriptors for the font. For
 | 
				
			||||||
 | 
					  # example:
 | 
				
			||||||
 | 
					  # fonts:
 | 
				
			||||||
 | 
					  #   - family: Schyler
 | 
				
			||||||
 | 
					  #     fonts:
 | 
				
			||||||
 | 
					  #       - asset: fonts/Schyler-Regular.ttf
 | 
				
			||||||
 | 
					  #       - asset: fonts/Schyler-Italic.ttf
 | 
				
			||||||
 | 
					  #         style: italic
 | 
				
			||||||
 | 
					  #   - family: Trajan Pro
 | 
				
			||||||
 | 
					  #     fonts:
 | 
				
			||||||
 | 
					  #       - asset: fonts/TrajanPro.ttf
 | 
				
			||||||
 | 
					  #       - asset: fonts/TrajanPro_Bold.ttf
 | 
				
			||||||
 | 
					  #         weight: 700
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # For details regarding fonts from package dependencies,
 | 
				
			||||||
 | 
					  # see https://flutter.dev/custom-fonts/#from-packages
 | 
				
			||||||
							
								
								
									
										30
									
								
								test/widget_test.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					// This is a basic Flutter widget test.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// To perform an interaction with a widget in your test, use the WidgetTester
 | 
				
			||||||
 | 
					// utility that Flutter provides. For example, you can send tap and scroll
 | 
				
			||||||
 | 
					// gestures. You can also use WidgetTester to find child widgets in the widget
 | 
				
			||||||
 | 
					// tree, read text, and verify that the values of widget properties are correct.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					import 'package:flutter_test/flutter_test.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'package:sqflite_pust_local_notification/main.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void main() {
 | 
				
			||||||
 | 
					  testWidgets('Counter increments smoke test', (WidgetTester tester) async {
 | 
				
			||||||
 | 
					    // Build our app and trigger a frame.
 | 
				
			||||||
 | 
					    await tester.pumpWidget(const MyApp());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Verify that our counter starts at 0.
 | 
				
			||||||
 | 
					    expect(find.text('0'), findsOneWidget);
 | 
				
			||||||
 | 
					    expect(find.text('1'), findsNothing);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Tap the '+' icon and trigger a frame.
 | 
				
			||||||
 | 
					    await tester.tap(find.byIcon(Icons.add));
 | 
				
			||||||
 | 
					    await tester.pump();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Verify that our counter has incremented.
 | 
				
			||||||
 | 
					    expect(find.text('0'), findsNothing);
 | 
				
			||||||
 | 
					    expect(find.text('1'), findsOneWidget);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								web/favicon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 917 B  | 
							
								
								
									
										
											BIN
										
									
								
								web/icons/Icon-192.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								web/icons/Icon-512.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 8.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								web/icons/Icon-maskable-192.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								web/icons/Icon-maskable-512.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 20 KiB  | 
							
								
								
									
										104
									
								
								web/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,104 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					  <!--
 | 
				
			||||||
 | 
					    If you are serving your web app in a path other than the root, change the
 | 
				
			||||||
 | 
					    href value below to reflect the base path you are serving from.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The path provided below has to start and end with a slash "/" in order for
 | 
				
			||||||
 | 
					    it to work correctly.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    For more details:
 | 
				
			||||||
 | 
					    * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    This is a placeholder for base href that will be replaced by the value of
 | 
				
			||||||
 | 
					    the `--base-href` argument provided to `flutter build`.
 | 
				
			||||||
 | 
					  -->
 | 
				
			||||||
 | 
					  <base href="$FLUTTER_BASE_HREF">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <meta charset="UTF-8">
 | 
				
			||||||
 | 
					  <meta content="IE=Edge" http-equiv="X-UA-Compatible">
 | 
				
			||||||
 | 
					  <meta name="description" content="A new Flutter project.">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <!-- iOS meta tags & icons -->
 | 
				
			||||||
 | 
					  <meta name="apple-mobile-web-app-capable" content="yes">
 | 
				
			||||||
 | 
					  <meta name="apple-mobile-web-app-status-bar-style" content="black">
 | 
				
			||||||
 | 
					  <meta name="apple-mobile-web-app-title" content="sqflite_pust_local_notification">
 | 
				
			||||||
 | 
					  <link rel="apple-touch-icon" href="icons/Icon-192.png">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <!-- Favicon -->
 | 
				
			||||||
 | 
					  <link rel="icon" type="image/png" href="favicon.png"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <title>sqflite_pust_local_notification</title>
 | 
				
			||||||
 | 
					  <link rel="manifest" href="manifest.json">
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					  <!-- This script installs service_worker.js to provide PWA functionality to
 | 
				
			||||||
 | 
					       application. For more information, see:
 | 
				
			||||||
 | 
					       https://developers.google.com/web/fundamentals/primers/service-workers -->
 | 
				
			||||||
 | 
					  <script>
 | 
				
			||||||
 | 
					    var serviceWorkerVersion = null;
 | 
				
			||||||
 | 
					    var scriptLoaded = false;
 | 
				
			||||||
 | 
					    function loadMainDartJs() {
 | 
				
			||||||
 | 
					      if (scriptLoaded) {
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      scriptLoaded = true;
 | 
				
			||||||
 | 
					      var scriptTag = document.createElement('script');
 | 
				
			||||||
 | 
					      scriptTag.src = 'main.dart.js';
 | 
				
			||||||
 | 
					      scriptTag.type = 'application/javascript';
 | 
				
			||||||
 | 
					      document.body.append(scriptTag);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ('serviceWorker' in navigator) {
 | 
				
			||||||
 | 
					      // Service workers are supported. Use them.
 | 
				
			||||||
 | 
					      window.addEventListener('load', function () {
 | 
				
			||||||
 | 
					        // Wait for registration to finish before dropping the <script> tag.
 | 
				
			||||||
 | 
					        // Otherwise, the browser will load the script multiple times,
 | 
				
			||||||
 | 
					        // potentially different versions.
 | 
				
			||||||
 | 
					        var serviceWorkerUrl = 'flutter_service_worker.js?v=' + serviceWorkerVersion;
 | 
				
			||||||
 | 
					        navigator.serviceWorker.register(serviceWorkerUrl)
 | 
				
			||||||
 | 
					          .then((reg) => {
 | 
				
			||||||
 | 
					            function waitForActivation(serviceWorker) {
 | 
				
			||||||
 | 
					              serviceWorker.addEventListener('statechange', () => {
 | 
				
			||||||
 | 
					                if (serviceWorker.state == 'activated') {
 | 
				
			||||||
 | 
					                  console.log('Installed new service worker.');
 | 
				
			||||||
 | 
					                  loadMainDartJs();
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					              });
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if (!reg.active && (reg.installing || reg.waiting)) {
 | 
				
			||||||
 | 
					              // No active web worker and we have installed or are installing
 | 
				
			||||||
 | 
					              // one for the first time. Simply wait for it to activate.
 | 
				
			||||||
 | 
					              waitForActivation(reg.installing || reg.waiting);
 | 
				
			||||||
 | 
					            } else if (!reg.active.scriptURL.endsWith(serviceWorkerVersion)) {
 | 
				
			||||||
 | 
					              // When the app updates the serviceWorkerVersion changes, so we
 | 
				
			||||||
 | 
					              // need to ask the service worker to update.
 | 
				
			||||||
 | 
					              console.log('New service worker available.');
 | 
				
			||||||
 | 
					              reg.update();
 | 
				
			||||||
 | 
					              waitForActivation(reg.installing);
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					              // Existing service worker is still good.
 | 
				
			||||||
 | 
					              console.log('Loading app from service worker.');
 | 
				
			||||||
 | 
					              loadMainDartJs();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // If service worker doesn't succeed in a reasonable amount of time,
 | 
				
			||||||
 | 
					        // fallback to plaint <script> tag.
 | 
				
			||||||
 | 
					        setTimeout(() => {
 | 
				
			||||||
 | 
					          if (!scriptLoaded) {
 | 
				
			||||||
 | 
					            console.warn(
 | 
				
			||||||
 | 
					              'Failed to load app from service worker. Falling back to plain <script> tag.',
 | 
				
			||||||
 | 
					            );
 | 
				
			||||||
 | 
					            loadMainDartJs();
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }, 4000);
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      // Service workers not supported. Just drop the <script> tag.
 | 
				
			||||||
 | 
					      loadMainDartJs();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  </script>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										35
									
								
								web/manifest.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "name": "sqflite_pust_local_notification",
 | 
				
			||||||
 | 
					    "short_name": "sqflite_pust_local_notification",
 | 
				
			||||||
 | 
					    "start_url": ".",
 | 
				
			||||||
 | 
					    "display": "standalone",
 | 
				
			||||||
 | 
					    "background_color": "#0175C2",
 | 
				
			||||||
 | 
					    "theme_color": "#0175C2",
 | 
				
			||||||
 | 
					    "description": "A new Flutter project.",
 | 
				
			||||||
 | 
					    "orientation": "portrait-primary",
 | 
				
			||||||
 | 
					    "prefer_related_applications": false,
 | 
				
			||||||
 | 
					    "icons": [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            "src": "icons/Icon-192.png",
 | 
				
			||||||
 | 
					            "sizes": "192x192",
 | 
				
			||||||
 | 
					            "type": "image/png"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            "src": "icons/Icon-512.png",
 | 
				
			||||||
 | 
					            "sizes": "512x512",
 | 
				
			||||||
 | 
					            "type": "image/png"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            "src": "icons/Icon-maskable-192.png",
 | 
				
			||||||
 | 
					            "sizes": "192x192",
 | 
				
			||||||
 | 
					            "type": "image/png",
 | 
				
			||||||
 | 
					            "purpose": "maskable"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            "src": "icons/Icon-maskable-512.png",
 | 
				
			||||||
 | 
					            "sizes": "512x512",
 | 
				
			||||||
 | 
					            "type": "image/png",
 | 
				
			||||||
 | 
					            "purpose": "maskable"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										17
									
								
								windows/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					flutter/ephemeral/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Visual Studio user-specific files.
 | 
				
			||||||
 | 
					*.suo
 | 
				
			||||||
 | 
					*.user
 | 
				
			||||||
 | 
					*.userosscache
 | 
				
			||||||
 | 
					*.sln.docstates
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Visual Studio build-related files.
 | 
				
			||||||
 | 
					x64/
 | 
				
			||||||
 | 
					x86/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Visual Studio cache files
 | 
				
			||||||
 | 
					# files ending in .cache can be ignored
 | 
				
			||||||
 | 
					*.[Cc]ache
 | 
				
			||||||
 | 
					# but keep track of directories ending in .cache
 | 
				
			||||||
 | 
					!*.[Cc]ache/
 | 
				
			||||||
							
								
								
									
										95
									
								
								windows/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,95 @@
 | 
				
			|||||||
 | 
					cmake_minimum_required(VERSION 3.14)
 | 
				
			||||||
 | 
					project(sqflite_pust_local_notification LANGUAGES CXX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(BINARY_NAME "sqflite_pust_local_notification")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cmake_policy(SET CMP0063 NEW)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(CMAKE_INSTALL_RPATH "$ORIGIN/lib")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Configure build options.
 | 
				
			||||||
 | 
					get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
 | 
				
			||||||
 | 
					if(IS_MULTICONFIG)
 | 
				
			||||||
 | 
					  set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release"
 | 
				
			||||||
 | 
					    CACHE STRING "" FORCE)
 | 
				
			||||||
 | 
					else()
 | 
				
			||||||
 | 
					  if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
 | 
				
			||||||
 | 
					    set(CMAKE_BUILD_TYPE "Debug" CACHE
 | 
				
			||||||
 | 
					      STRING "Flutter build mode" FORCE)
 | 
				
			||||||
 | 
					    set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
 | 
				
			||||||
 | 
					      "Debug" "Profile" "Release")
 | 
				
			||||||
 | 
					  endif()
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}")
 | 
				
			||||||
 | 
					set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
 | 
				
			||||||
 | 
					set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}")
 | 
				
			||||||
 | 
					set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Use Unicode for all projects.
 | 
				
			||||||
 | 
					add_definitions(-DUNICODE -D_UNICODE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compilation settings that should be applied to most targets.
 | 
				
			||||||
 | 
					function(APPLY_STANDARD_SETTINGS TARGET)
 | 
				
			||||||
 | 
					  target_compile_features(${TARGET} PUBLIC cxx_std_17)
 | 
				
			||||||
 | 
					  target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100")
 | 
				
			||||||
 | 
					  target_compile_options(${TARGET} PRIVATE /EHsc)
 | 
				
			||||||
 | 
					  target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0")
 | 
				
			||||||
 | 
					  target_compile_definitions(${TARGET} PRIVATE "$<$<CONFIG:Debug>:_DEBUG>")
 | 
				
			||||||
 | 
					endfunction()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Flutter library and tool build rules.
 | 
				
			||||||
 | 
					add_subdirectory(${FLUTTER_MANAGED_DIR})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Application build
 | 
				
			||||||
 | 
					add_subdirectory("runner")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generated plugin build rules, which manage building the plugins and adding
 | 
				
			||||||
 | 
					# them to the application.
 | 
				
			||||||
 | 
					include(flutter/generated_plugins.cmake)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# === Installation ===
 | 
				
			||||||
 | 
					# Support files are copied into place next to the executable, so that it can
 | 
				
			||||||
 | 
					# run in place. This is done instead of making a separate bundle (as on Linux)
 | 
				
			||||||
 | 
					# so that building and running from within Visual Studio will work.
 | 
				
			||||||
 | 
					set(BUILD_BUNDLE_DIR "$<TARGET_FILE_DIR:${BINARY_NAME}>")
 | 
				
			||||||
 | 
					# Make the "install" step default, as it's required to run.
 | 
				
			||||||
 | 
					set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1)
 | 
				
			||||||
 | 
					if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
 | 
				
			||||||
 | 
					  set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data")
 | 
				
			||||||
 | 
					set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}"
 | 
				
			||||||
 | 
					  COMPONENT Runtime)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"
 | 
				
			||||||
 | 
					  COMPONENT Runtime)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
 | 
				
			||||||
 | 
					  COMPONENT Runtime)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if(PLUGIN_BUNDLED_LIBRARIES)
 | 
				
			||||||
 | 
					  install(FILES "${PLUGIN_BUNDLED_LIBRARIES}"
 | 
				
			||||||
 | 
					    DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
 | 
				
			||||||
 | 
					    COMPONENT Runtime)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Fully re-copy the assets directory on each build to avoid having stale files
 | 
				
			||||||
 | 
					# from a previous install.
 | 
				
			||||||
 | 
					set(FLUTTER_ASSET_DIR_NAME "flutter_assets")
 | 
				
			||||||
 | 
					install(CODE "
 | 
				
			||||||
 | 
					  file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\")
 | 
				
			||||||
 | 
					  " COMPONENT Runtime)
 | 
				
			||||||
 | 
					install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}"
 | 
				
			||||||
 | 
					  DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Install the AOT library on non-Debug builds only.
 | 
				
			||||||
 | 
					install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"
 | 
				
			||||||
 | 
					  CONFIGURATIONS Profile;Release
 | 
				
			||||||
 | 
					  COMPONENT Runtime)
 | 
				
			||||||
							
								
								
									
										103
									
								
								windows/flutter/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,103 @@
 | 
				
			|||||||
 | 
					cmake_minimum_required(VERSION 3.14)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Configuration provided via flutter tool.
 | 
				
			||||||
 | 
					include(${EPHEMERAL_DIR}/generated_config.cmake)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# TODO: Move the rest of this into files in ephemeral. See
 | 
				
			||||||
 | 
					# https://github.com/flutter/flutter/issues/57146.
 | 
				
			||||||
 | 
					set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# === Flutter Library ===
 | 
				
			||||||
 | 
					set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Published to parent scope for install step.
 | 
				
			||||||
 | 
					set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE)
 | 
				
			||||||
 | 
					set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE)
 | 
				
			||||||
 | 
					set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE)
 | 
				
			||||||
 | 
					set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					list(APPEND FLUTTER_LIBRARY_HEADERS
 | 
				
			||||||
 | 
					  "flutter_export.h"
 | 
				
			||||||
 | 
					  "flutter_windows.h"
 | 
				
			||||||
 | 
					  "flutter_messenger.h"
 | 
				
			||||||
 | 
					  "flutter_plugin_registrar.h"
 | 
				
			||||||
 | 
					  "flutter_texture_registrar.h"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/")
 | 
				
			||||||
 | 
					add_library(flutter INTERFACE)
 | 
				
			||||||
 | 
					target_include_directories(flutter INTERFACE
 | 
				
			||||||
 | 
					  "${EPHEMERAL_DIR}"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib")
 | 
				
			||||||
 | 
					add_dependencies(flutter flutter_assemble)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# === Wrapper ===
 | 
				
			||||||
 | 
					list(APPEND CPP_WRAPPER_SOURCES_CORE
 | 
				
			||||||
 | 
					  "core_implementations.cc"
 | 
				
			||||||
 | 
					  "standard_codec.cc"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/")
 | 
				
			||||||
 | 
					list(APPEND CPP_WRAPPER_SOURCES_PLUGIN
 | 
				
			||||||
 | 
					  "plugin_registrar.cc"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/")
 | 
				
			||||||
 | 
					list(APPEND CPP_WRAPPER_SOURCES_APP
 | 
				
			||||||
 | 
					  "flutter_engine.cc"
 | 
				
			||||||
 | 
					  "flutter_view_controller.cc"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Wrapper sources needed for a plugin.
 | 
				
			||||||
 | 
					add_library(flutter_wrapper_plugin STATIC
 | 
				
			||||||
 | 
					  ${CPP_WRAPPER_SOURCES_CORE}
 | 
				
			||||||
 | 
					  ${CPP_WRAPPER_SOURCES_PLUGIN}
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					apply_standard_settings(flutter_wrapper_plugin)
 | 
				
			||||||
 | 
					set_target_properties(flutter_wrapper_plugin PROPERTIES
 | 
				
			||||||
 | 
					  POSITION_INDEPENDENT_CODE ON)
 | 
				
			||||||
 | 
					set_target_properties(flutter_wrapper_plugin PROPERTIES
 | 
				
			||||||
 | 
					  CXX_VISIBILITY_PRESET hidden)
 | 
				
			||||||
 | 
					target_link_libraries(flutter_wrapper_plugin PUBLIC flutter)
 | 
				
			||||||
 | 
					target_include_directories(flutter_wrapper_plugin PUBLIC
 | 
				
			||||||
 | 
					  "${WRAPPER_ROOT}/include"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					add_dependencies(flutter_wrapper_plugin flutter_assemble)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Wrapper sources needed for the runner.
 | 
				
			||||||
 | 
					add_library(flutter_wrapper_app STATIC
 | 
				
			||||||
 | 
					  ${CPP_WRAPPER_SOURCES_CORE}
 | 
				
			||||||
 | 
					  ${CPP_WRAPPER_SOURCES_APP}
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					apply_standard_settings(flutter_wrapper_app)
 | 
				
			||||||
 | 
					target_link_libraries(flutter_wrapper_app PUBLIC flutter)
 | 
				
			||||||
 | 
					target_include_directories(flutter_wrapper_app PUBLIC
 | 
				
			||||||
 | 
					  "${WRAPPER_ROOT}/include"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					add_dependencies(flutter_wrapper_app flutter_assemble)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# === Flutter tool backend ===
 | 
				
			||||||
 | 
					# _phony_ is a non-existent file to force this command to run every time,
 | 
				
			||||||
 | 
					# since currently there's no way to get a full input/output list from the
 | 
				
			||||||
 | 
					# flutter tool.
 | 
				
			||||||
 | 
					set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_")
 | 
				
			||||||
 | 
					set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE)
 | 
				
			||||||
 | 
					add_custom_command(
 | 
				
			||||||
 | 
					  OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS}
 | 
				
			||||||
 | 
					    ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN}
 | 
				
			||||||
 | 
					    ${CPP_WRAPPER_SOURCES_APP}
 | 
				
			||||||
 | 
					    ${PHONY_OUTPUT}
 | 
				
			||||||
 | 
					  COMMAND ${CMAKE_COMMAND} -E env
 | 
				
			||||||
 | 
					    ${FLUTTER_TOOL_ENVIRONMENT}
 | 
				
			||||||
 | 
					    "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat"
 | 
				
			||||||
 | 
					      windows-x64 $<CONFIG>
 | 
				
			||||||
 | 
					  VERBATIM
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					add_custom_target(flutter_assemble DEPENDS
 | 
				
			||||||
 | 
					  "${FLUTTER_LIBRARY}"
 | 
				
			||||||
 | 
					  ${FLUTTER_LIBRARY_HEADERS}
 | 
				
			||||||
 | 
					  ${CPP_WRAPPER_SOURCES_CORE}
 | 
				
			||||||
 | 
					  ${CPP_WRAPPER_SOURCES_PLUGIN}
 | 
				
			||||||
 | 
					  ${CPP_WRAPPER_SOURCES_APP}
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
							
								
								
									
										11
									
								
								windows/flutter/generated_plugin_registrant.cc
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					//
 | 
				
			||||||
 | 
					//  Generated file. Do not edit.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// clang-format off
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "generated_plugin_registrant.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void RegisterPlugins(flutter::PluginRegistry* registry) {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										15
									
								
								windows/flutter/generated_plugin_registrant.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					//
 | 
				
			||||||
 | 
					//  Generated file. Do not edit.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// clang-format off
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef GENERATED_PLUGIN_REGISTRANT_
 | 
				
			||||||
 | 
					#define GENERATED_PLUGIN_REGISTRANT_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <flutter/plugin_registry.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Registers Flutter plugins.
 | 
				
			||||||
 | 
					void RegisterPlugins(flutter::PluginRegistry* registry);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif  // GENERATED_PLUGIN_REGISTRANT_
 | 
				
			||||||
							
								
								
									
										23
									
								
								windows/flutter/generated_plugins.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					#
 | 
				
			||||||
 | 
					# Generated file, do not edit.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					list(APPEND FLUTTER_PLUGIN_LIST
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					list(APPEND FLUTTER_FFI_PLUGIN_LIST
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(PLUGIN_BUNDLED_LIBRARIES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					foreach(plugin ${FLUTTER_PLUGIN_LIST})
 | 
				
			||||||
 | 
					  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin})
 | 
				
			||||||
 | 
					  target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
 | 
				
			||||||
 | 
					  list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
 | 
				
			||||||
 | 
					  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
 | 
				
			||||||
 | 
					endforeach(plugin)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
 | 
				
			||||||
 | 
					  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})
 | 
				
			||||||
 | 
					  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
 | 
				
			||||||
 | 
					endforeach(ffi_plugin)
 | 
				
			||||||
							
								
								
									
										17
									
								
								windows/runner/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					cmake_minimum_required(VERSION 3.14)
 | 
				
			||||||
 | 
					project(runner LANGUAGES CXX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					add_executable(${BINARY_NAME} WIN32
 | 
				
			||||||
 | 
					  "flutter_window.cpp"
 | 
				
			||||||
 | 
					  "main.cpp"
 | 
				
			||||||
 | 
					  "utils.cpp"
 | 
				
			||||||
 | 
					  "win32_window.cpp"
 | 
				
			||||||
 | 
					  "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
 | 
				
			||||||
 | 
					  "Runner.rc"
 | 
				
			||||||
 | 
					  "runner.exe.manifest"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					apply_standard_settings(${BINARY_NAME})
 | 
				
			||||||
 | 
					target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX")
 | 
				
			||||||
 | 
					target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app)
 | 
				
			||||||
 | 
					target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}")
 | 
				
			||||||
 | 
					add_dependencies(${BINARY_NAME} flutter_assemble)
 | 
				
			||||||
							
								
								
									
										121
									
								
								windows/runner/Runner.rc
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,121 @@
 | 
				
			|||||||
 | 
					// Microsoft Visual C++ generated resource script.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					#pragma code_page(65001)
 | 
				
			||||||
 | 
					#include "resource.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define APSTUDIO_READONLY_SYMBOLS
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Generated from the TEXTINCLUDE 2 resource.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					#include "winres.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					#undef APSTUDIO_READONLY_SYMBOLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					// English (United States) resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
 | 
				
			||||||
 | 
					LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef APSTUDIO_INVOKED
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// TEXTINCLUDE
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1 TEXTINCLUDE
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					    "resource.h\0"
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2 TEXTINCLUDE
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					    "#include ""winres.h""\r\n"
 | 
				
			||||||
 | 
					    "\0"
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					3 TEXTINCLUDE
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					    "\r\n"
 | 
				
			||||||
 | 
					    "\0"
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif    // APSTUDIO_INVOKED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Icon
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Icon with lowest ID value placed first to ensure application icon
 | 
				
			||||||
 | 
					// remains consistent on all systems.
 | 
				
			||||||
 | 
					IDI_APP_ICON            ICON                    "resources\\app_icon.ico"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Version
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef FLUTTER_BUILD_NUMBER
 | 
				
			||||||
 | 
					#define VERSION_AS_NUMBER FLUTTER_BUILD_NUMBER
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define VERSION_AS_NUMBER 1,0,0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef FLUTTER_BUILD_NAME
 | 
				
			||||||
 | 
					#define VERSION_AS_STRING #FLUTTER_BUILD_NAME
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define VERSION_AS_STRING "1.0.0"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VS_VERSION_INFO VERSIONINFO
 | 
				
			||||||
 | 
					 FILEVERSION VERSION_AS_NUMBER
 | 
				
			||||||
 | 
					 PRODUCTVERSION VERSION_AS_NUMBER
 | 
				
			||||||
 | 
					 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
 | 
				
			||||||
 | 
					#ifdef _DEBUG
 | 
				
			||||||
 | 
					 FILEFLAGS VS_FF_DEBUG
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					 FILEFLAGS 0x0L
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					 FILEOS VOS__WINDOWS32
 | 
				
			||||||
 | 
					 FILETYPE VFT_APP
 | 
				
			||||||
 | 
					 FILESUBTYPE 0x0L
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					    BLOCK "StringFileInfo"
 | 
				
			||||||
 | 
					    BEGIN
 | 
				
			||||||
 | 
					        BLOCK "040904e4"
 | 
				
			||||||
 | 
					        BEGIN
 | 
				
			||||||
 | 
					            VALUE "CompanyName", "com.myself" "\0"
 | 
				
			||||||
 | 
					            VALUE "FileDescription", "sqflite_pust_local_notification" "\0"
 | 
				
			||||||
 | 
					            VALUE "FileVersion", VERSION_AS_STRING "\0"
 | 
				
			||||||
 | 
					            VALUE "InternalName", "sqflite_pust_local_notification" "\0"
 | 
				
			||||||
 | 
					            VALUE "LegalCopyright", "Copyright (C) 2022 com.myself. All rights reserved." "\0"
 | 
				
			||||||
 | 
					            VALUE "OriginalFilename", "sqflite_pust_local_notification.exe" "\0"
 | 
				
			||||||
 | 
					            VALUE "ProductName", "sqflite_pust_local_notification" "\0"
 | 
				
			||||||
 | 
					            VALUE "ProductVersion", VERSION_AS_STRING "\0"
 | 
				
			||||||
 | 
					        END
 | 
				
			||||||
 | 
					    END
 | 
				
			||||||
 | 
					    BLOCK "VarFileInfo"
 | 
				
			||||||
 | 
					    BEGIN
 | 
				
			||||||
 | 
					        VALUE "Translation", 0x409, 1252
 | 
				
			||||||
 | 
					    END
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif    // English (United States) resources
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef APSTUDIO_INVOKED
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Generated from the TEXTINCLUDE 3 resource.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					#endif    // not APSTUDIO_INVOKED
 | 
				
			||||||
							
								
								
									
										61
									
								
								windows/runner/flutter_window.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,61 @@
 | 
				
			|||||||
 | 
					#include "flutter_window.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <optional>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "flutter/generated_plugin_registrant.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FlutterWindow::FlutterWindow(const flutter::DartProject& project)
 | 
				
			||||||
 | 
					    : project_(project) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FlutterWindow::~FlutterWindow() {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool FlutterWindow::OnCreate() {
 | 
				
			||||||
 | 
					  if (!Win32Window::OnCreate()) {
 | 
				
			||||||
 | 
					    return false;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  RECT frame = GetClientArea();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // The size here must match the window dimensions to avoid unnecessary surface
 | 
				
			||||||
 | 
					  // creation / destruction in the startup path.
 | 
				
			||||||
 | 
					  flutter_controller_ = std::make_unique<flutter::FlutterViewController>(
 | 
				
			||||||
 | 
					      frame.right - frame.left, frame.bottom - frame.top, project_);
 | 
				
			||||||
 | 
					  // Ensure that basic setup of the controller was successful.
 | 
				
			||||||
 | 
					  if (!flutter_controller_->engine() || !flutter_controller_->view()) {
 | 
				
			||||||
 | 
					    return false;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  RegisterPlugins(flutter_controller_->engine());
 | 
				
			||||||
 | 
					  SetChildContent(flutter_controller_->view()->GetNativeWindow());
 | 
				
			||||||
 | 
					  return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void FlutterWindow::OnDestroy() {
 | 
				
			||||||
 | 
					  if (flutter_controller_) {
 | 
				
			||||||
 | 
					    flutter_controller_ = nullptr;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Win32Window::OnDestroy();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LRESULT
 | 
				
			||||||
 | 
					FlutterWindow::MessageHandler(HWND hwnd, UINT const message,
 | 
				
			||||||
 | 
					                              WPARAM const wparam,
 | 
				
			||||||
 | 
					                              LPARAM const lparam) noexcept {
 | 
				
			||||||
 | 
					  // Give Flutter, including plugins, an opportunity to handle window messages.
 | 
				
			||||||
 | 
					  if (flutter_controller_) {
 | 
				
			||||||
 | 
					    std::optional<LRESULT> result =
 | 
				
			||||||
 | 
					        flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam,
 | 
				
			||||||
 | 
					                                                      lparam);
 | 
				
			||||||
 | 
					    if (result) {
 | 
				
			||||||
 | 
					      return *result;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  switch (message) {
 | 
				
			||||||
 | 
					    case WM_FONTCHANGE:
 | 
				
			||||||
 | 
					      flutter_controller_->engine()->ReloadSystemFonts();
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return Win32Window::MessageHandler(hwnd, message, wparam, lparam);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										33
									
								
								windows/runner/flutter_window.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					#ifndef RUNNER_FLUTTER_WINDOW_H_
 | 
				
			||||||
 | 
					#define RUNNER_FLUTTER_WINDOW_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <flutter/dart_project.h>
 | 
				
			||||||
 | 
					#include <flutter/flutter_view_controller.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <memory>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "win32_window.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// A window that does nothing but host a Flutter view.
 | 
				
			||||||
 | 
					class FlutterWindow : public Win32Window {
 | 
				
			||||||
 | 
					 public:
 | 
				
			||||||
 | 
					  // Creates a new FlutterWindow hosting a Flutter view running |project|.
 | 
				
			||||||
 | 
					  explicit FlutterWindow(const flutter::DartProject& project);
 | 
				
			||||||
 | 
					  virtual ~FlutterWindow();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 protected:
 | 
				
			||||||
 | 
					  // Win32Window:
 | 
				
			||||||
 | 
					  bool OnCreate() override;
 | 
				
			||||||
 | 
					  void OnDestroy() override;
 | 
				
			||||||
 | 
					  LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam,
 | 
				
			||||||
 | 
					                         LPARAM const lparam) noexcept override;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 private:
 | 
				
			||||||
 | 
					  // The project to run.
 | 
				
			||||||
 | 
					  flutter::DartProject project_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // The Flutter instance hosted by this window.
 | 
				
			||||||
 | 
					  std::unique_ptr<flutter::FlutterViewController> flutter_controller_;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif  // RUNNER_FLUTTER_WINDOW_H_
 | 
				
			||||||
							
								
								
									
										43
									
								
								windows/runner/main.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,43 @@
 | 
				
			|||||||
 | 
					#include <flutter/dart_project.h>
 | 
				
			||||||
 | 
					#include <flutter/flutter_view_controller.h>
 | 
				
			||||||
 | 
					#include <windows.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "flutter_window.h"
 | 
				
			||||||
 | 
					#include "utils.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
 | 
				
			||||||
 | 
					                      _In_ wchar_t *command_line, _In_ int show_command) {
 | 
				
			||||||
 | 
					  // Attach to console when present (e.g., 'flutter run') or create a
 | 
				
			||||||
 | 
					  // new console when running with a debugger.
 | 
				
			||||||
 | 
					  if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) {
 | 
				
			||||||
 | 
					    CreateAndAttachConsole();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Initialize COM, so that it is available for use in the library and/or
 | 
				
			||||||
 | 
					  // plugins.
 | 
				
			||||||
 | 
					  ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  flutter::DartProject project(L"data");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  std::vector<std::string> command_line_arguments =
 | 
				
			||||||
 | 
					      GetCommandLineArguments();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  project.set_dart_entrypoint_arguments(std::move(command_line_arguments));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  FlutterWindow window(project);
 | 
				
			||||||
 | 
					  Win32Window::Point origin(10, 10);
 | 
				
			||||||
 | 
					  Win32Window::Size size(1280, 720);
 | 
				
			||||||
 | 
					  if (!window.CreateAndShow(L"sqflite_pust_local_notification", origin, size)) {
 | 
				
			||||||
 | 
					    return EXIT_FAILURE;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  window.SetQuitOnClose(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ::MSG msg;
 | 
				
			||||||
 | 
					  while (::GetMessage(&msg, nullptr, 0, 0)) {
 | 
				
			||||||
 | 
					    ::TranslateMessage(&msg);
 | 
				
			||||||
 | 
					    ::DispatchMessage(&msg);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ::CoUninitialize();
 | 
				
			||||||
 | 
					  return EXIT_SUCCESS;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										16
									
								
								windows/runner/resource.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					//{{NO_DEPENDENCIES}}
 | 
				
			||||||
 | 
					// Microsoft Visual C++ generated include file.
 | 
				
			||||||
 | 
					// Used by Runner.rc
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					#define IDI_APP_ICON                    101
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Next default values for new objects
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					#ifdef APSTUDIO_INVOKED
 | 
				
			||||||
 | 
					#ifndef APSTUDIO_READONLY_SYMBOLS
 | 
				
			||||||
 | 
					#define _APS_NEXT_RESOURCE_VALUE        102
 | 
				
			||||||
 | 
					#define _APS_NEXT_COMMAND_VALUE         40001
 | 
				
			||||||
 | 
					#define _APS_NEXT_CONTROL_VALUE         1001
 | 
				
			||||||
 | 
					#define _APS_NEXT_SYMED_VALUE           101
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								windows/runner/resources/app_icon.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 33 KiB  |