master #1
7
.gitignore
vendored
7
.gitignore
vendored
@@ -27,18 +27,11 @@ migrate_working_dir/
|
||||
**/doc/api/
|
||||
**/ios/Flutter/.last_build_id
|
||||
.dart_tool/
|
||||
<<<<<<< HEAD
|
||||
.flutter-plugins
|
||||
=======
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
.flutter-plugins-dependencies
|
||||
.pub-cache/
|
||||
.pub/
|
||||
/build/
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
/coverage/
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
# Symbolication related
|
||||
app.*.symbols
|
||||
|
||||
27
.metadata
27
.metadata
@@ -4,11 +4,7 @@
|
||||
# This file should be version controlled and should not be manually edited.
|
||||
|
||||
version:
|
||||
<<<<<<< HEAD
|
||||
revision: "d8a9f9a52e5af486f80d932e838ee93861ffd863"
|
||||
=======
|
||||
revision: "559ffa3f75e7402d65a8def9c28389a9b2e6fe42"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
channel: "stable"
|
||||
|
||||
project_type: app
|
||||
@@ -17,7 +13,6 @@ project_type: app
|
||||
migration:
|
||||
platforms:
|
||||
- platform: root
|
||||
<<<<<<< HEAD
|
||||
create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
- platform: android
|
||||
@@ -38,28 +33,6 @@ migration:
|
||||
- platform: windows
|
||||
create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
=======
|
||||
create_revision: 559ffa3f75e7402d65a8def9c28389a9b2e6fe42
|
||||
base_revision: 559ffa3f75e7402d65a8def9c28389a9b2e6fe42
|
||||
- platform: android
|
||||
create_revision: 559ffa3f75e7402d65a8def9c28389a9b2e6fe42
|
||||
base_revision: 559ffa3f75e7402d65a8def9c28389a9b2e6fe42
|
||||
- platform: ios
|
||||
create_revision: 559ffa3f75e7402d65a8def9c28389a9b2e6fe42
|
||||
base_revision: 559ffa3f75e7402d65a8def9c28389a9b2e6fe42
|
||||
- platform: linux
|
||||
create_revision: 559ffa3f75e7402d65a8def9c28389a9b2e6fe42
|
||||
base_revision: 559ffa3f75e7402d65a8def9c28389a9b2e6fe42
|
||||
- platform: macos
|
||||
create_revision: 559ffa3f75e7402d65a8def9c28389a9b2e6fe42
|
||||
base_revision: 559ffa3f75e7402d65a8def9c28389a9b2e6fe42
|
||||
- platform: web
|
||||
create_revision: 559ffa3f75e7402d65a8def9c28389a9b2e6fe42
|
||||
base_revision: 559ffa3f75e7402d65a8def9c28389a9b2e6fe42
|
||||
- platform: windows
|
||||
create_revision: 559ffa3f75e7402d65a8def9c28389a9b2e6fe42
|
||||
base_revision: 559ffa3f75e7402d65a8def9c28389a9b2e6fe42
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
# User provided section
|
||||
|
||||
|
||||
10
README.md
10
README.md
@@ -1,8 +1,4 @@
|
||||
<<<<<<< HEAD
|
||||
# flutter_application_1
|
||||
=======
|
||||
# recoleccion_residuos
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
A new Flutter project.
|
||||
|
||||
@@ -12,14 +8,8 @@ This project is a starting point for a Flutter application.
|
||||
|
||||
A few resources to get you started if this is your first Flutter project:
|
||||
|
||||
<<<<<<< HEAD
|
||||
- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
|
||||
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
|
||||
=======
|
||||
- [Learn Flutter](https://docs.flutter.dev/get-started/learn-flutter)
|
||||
- [Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
|
||||
- [Flutter learning resources](https://docs.flutter.dev/reference/learning-resources)
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
For help getting started with Flutter development, view the
|
||||
[online documentation](https://docs.flutter.dev/), which offers tutorials,
|
||||
|
||||
4
android/.gitignore
vendored
4
android/.gitignore
vendored
@@ -5,10 +5,6 @@ gradle-wrapper.jar
|
||||
/gradlew.bat
|
||||
/local.properties
|
||||
GeneratedPluginRegistrant.java
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
.cxx/
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
# Remember to never publicly share your keystore.
|
||||
# See https://flutter.dev/to/reference-keystore
|
||||
|
||||
@@ -6,29 +6,31 @@ plugins {
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "com.example.flutter_application_1"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
ndkVersion = flutter.ndkVersion
|
||||
namespace "com.example.flutter_application_1"
|
||||
compileSdkVersion flutter.compileSdkVersion
|
||||
ndkVersion flutter.ndkVersion
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
// 📍 DEBE IR AQUÍ: Adentro de android, pero AFUERA de defaultConfig
|
||||
coreLibraryDesugaringEnabled true
|
||||
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_1_8
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId = "com.example.flutter_application_1"
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://flutter.dev/to/review-gradle-config.
|
||||
minSdk = flutter.minSdkVersion
|
||||
targetSdk = flutter.targetSdkVersion
|
||||
versionCode = flutter.versionCode
|
||||
versionName = flutter.versionName
|
||||
// ⚠️ AQUÍ ADENTRO NO DEBE IR EL DESUGARING
|
||||
applicationId "com.example.flutter_application_1"
|
||||
minSdkVersion flutter.minSdkVersion
|
||||
targetSdkVersion flutter.targetSdkVersion
|
||||
versionCode flutter.versionCode
|
||||
versionName flutter.versionName
|
||||
}
|
||||
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
@@ -37,8 +39,14 @@ android {
|
||||
signingConfig = signingConfigs.debug
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
flutter {
|
||||
source = "../.."
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// 📍 AGREGA ESTA LÍNEA AL FINAL DE LAS DEPENDENCIAS:
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
plugins {
|
||||
id("com.android.application")
|
||||
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
|
||||
id("dev.flutter.flutter-gradle-plugin")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "com.example.recoleccion_residuos"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
ndkVersion = flutter.ndkVersion
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId = "com.example.recoleccion_residuos"
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://flutter.dev/to/review-gradle-config.
|
||||
minSdk = flutter.minSdkVersion
|
||||
targetSdk = flutter.targetSdkVersion
|
||||
versionCode = flutter.versionCode
|
||||
versionName = flutter.versionName
|
||||
}
|
||||
|
||||
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.getByName("debug")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
kotlin {
|
||||
compilerOptions {
|
||||
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
|
||||
}
|
||||
}
|
||||
|
||||
flutter {
|
||||
source = "../.."
|
||||
}
|
||||
@@ -1,10 +1,11 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<!-- 📍 EL PERMISO VA AQUÍ (ADENTRO DE MANIFEST, PERO AFUERA DE APPLICATION) -->
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
|
||||
<application
|
||||
<<<<<<< HEAD
|
||||
android:label="flutter_application_1"
|
||||
=======
|
||||
android:label="recoleccion_residuos"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
<activity
|
||||
@@ -35,6 +36,7 @@
|
||||
android:name="flutterEmbedding"
|
||||
android:value="2" />
|
||||
</application>
|
||||
|
||||
<!-- Required to query activities that can process text, see:
|
||||
https://developer.android.com/training/package-visibility and
|
||||
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.example.recoleccion_residuos
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
class MainActivity : FlutterActivity()
|
||||
@@ -1,24 +0,0 @@
|
||||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
}
|
||||
|
||||
val newBuildDir: Directory =
|
||||
rootProject.layout.buildDirectory
|
||||
.dir("../../build")
|
||||
.get()
|
||||
rootProject.layout.buildDirectory.value(newBuildDir)
|
||||
|
||||
subprojects {
|
||||
val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
|
||||
project.layout.buildDirectory.value(newSubprojectBuildDir)
|
||||
}
|
||||
subprojects {
|
||||
project.evaluationDependsOn(":app")
|
||||
}
|
||||
|
||||
tasks.register<Delete>("clean") {
|
||||
delete(rootProject.layout.buildDirectory)
|
||||
}
|
||||
@@ -1,12 +1,3 @@
|
||||
<<<<<<< HEAD
|
||||
org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
=======
|
||||
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
|
||||
android.useAndroidX=true
|
||||
# This newDsl flag was added by the Flutter template
|
||||
android.newDsl=false
|
||||
# This builtInKotlin flag was added by the Flutter template
|
||||
android.builtInKotlin=false
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
@@ -2,8 +2,4 @@ distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
<<<<<<< HEAD
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-all.zip
|
||||
=======
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-all.zip
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
pluginManagement {
|
||||
val flutterSdkPath =
|
||||
run {
|
||||
val properties = java.util.Properties()
|
||||
file("local.properties").inputStream().use { properties.load(it) }
|
||||
val flutterSdkPath = properties.getProperty("flutter.sdk")
|
||||
require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
|
||||
flutterSdkPath
|
||||
}
|
||||
|
||||
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
|
||||
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
gradlePluginPortal()
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
|
||||
id("com.android.application") version "9.0.1" apply false
|
||||
id("org.jetbrains.kotlin.android") version "2.3.20" apply false
|
||||
}
|
||||
|
||||
include(":app")
|
||||
0
flutter_01.png
Normal file
0
flutter_01.png
Normal file
@@ -20,10 +20,7 @@
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<<<<<<< HEAD
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>12.0</string>
|
||||
=======
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -11,11 +11,6 @@
|
||||
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
|
||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
|
||||
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
7884E8682EC3CC0700C636F2 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */; };
|
||||
78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; };
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
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 */; };
|
||||
@@ -52,11 +47,6 @@
|
||||
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>"; };
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
|
||||
78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = "<group>"; };
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
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>"; };
|
||||
@@ -72,10 +62,6 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */,
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -93,10 +79,6 @@
|
||||
9740EEB11CF90186004384FC /* Flutter */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */,
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
|
||||
9740EEB21CF90195004384FC /* Debug.xcconfig */,
|
||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
|
||||
@@ -134,10 +116,6 @@
|
||||
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
|
||||
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
|
||||
74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */,
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
|
||||
);
|
||||
path = Runner;
|
||||
@@ -179,12 +157,6 @@
|
||||
dependencies = (
|
||||
);
|
||||
name = Runner;
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
packageProductDependencies = (
|
||||
78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */,
|
||||
);
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
productName = Runner;
|
||||
productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
@@ -218,12 +190,6 @@
|
||||
Base,
|
||||
);
|
||||
mainGroup = 97C146E51CF9000F007C117D;
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
packageReferences = (
|
||||
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */,
|
||||
);
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
@@ -304,10 +270,6 @@
|
||||
files = (
|
||||
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
|
||||
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
7884E8682EC3CC0700C636F2 /* SceneDelegate.swift in Sources */,
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -384,11 +346,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
<<<<<<< HEAD
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
=======
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
@@ -410,11 +368,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
<<<<<<< HEAD
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1;
|
||||
=======
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
@@ -430,11 +384,7 @@
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
MARKETING_VERSION = 1.0;
|
||||
<<<<<<< HEAD
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests;
|
||||
=======
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos.RunnerTests;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
@@ -451,11 +401,7 @@
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
MARKETING_VERSION = 1.0;
|
||||
<<<<<<< HEAD
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests;
|
||||
=======
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos.RunnerTests;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
|
||||
@@ -470,11 +416,7 @@
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
MARKETING_VERSION = 1.0;
|
||||
<<<<<<< HEAD
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests;
|
||||
=======
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos.RunnerTests;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
|
||||
@@ -530,11 +472,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
<<<<<<< HEAD
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
=======
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
@@ -585,11 +523,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
<<<<<<< HEAD
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
=======
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
@@ -613,11 +547,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
<<<<<<< HEAD
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1;
|
||||
=======
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
@@ -639,11 +569,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
<<<<<<< HEAD
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1;
|
||||
=======
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
@@ -685,23 +611,6 @@
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
/* Begin XCLocalSwiftPackageReference section */
|
||||
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = {
|
||||
isa = XCLocalSwiftPackageReference;
|
||||
relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage;
|
||||
};
|
||||
/* End XCLocalSwiftPackageReference section */
|
||||
|
||||
/* Begin XCSwiftPackageProductDependency section */
|
||||
78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
productName = FlutterGeneratedPluginSwiftPackage;
|
||||
};
|
||||
/* End XCSwiftPackageProductDependency section */
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
};
|
||||
rootObject = 97C146E61CF9000F007C117D /* Project object */;
|
||||
}
|
||||
|
||||
@@ -5,27 +5,6 @@
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
<PreActions>
|
||||
<ExecutionAction
|
||||
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
|
||||
<ActionContent
|
||||
title = "Run Prepare Flutter Framework Script"
|
||||
scriptText = "/bin/sh "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" prepare ">
|
||||
<EnvironmentBuildable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||
BuildableName = "Runner.app"
|
||||
BlueprintName = "Runner"
|
||||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
</EnvironmentBuildable>
|
||||
</ActionContent>
|
||||
</ExecutionAction>
|
||||
</PreActions>
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
@@ -47,10 +26,6 @@
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
@@ -79,19 +54,11 @@
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
enableGPUValidationMode = "1"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
|
||||
@@ -2,25 +2,12 @@ import Flutter
|
||||
import UIKit
|
||||
|
||||
@main
|
||||
<<<<<<< HEAD
|
||||
@objc class AppDelegate: FlutterAppDelegate {
|
||||
=======
|
||||
@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate {
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
override func application(
|
||||
_ application: UIApplication,
|
||||
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
||||
) -> Bool {
|
||||
<<<<<<< HEAD
|
||||
GeneratedPluginRegistrant.register(with: self)
|
||||
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
||||
}
|
||||
=======
|
||||
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
||||
}
|
||||
|
||||
func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) {
|
||||
GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry)
|
||||
}
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
}
|
||||
|
||||
@@ -2,19 +2,10 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<<<<<<< HEAD
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Flutter Application 1</string>
|
||||
=======
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true/>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Recoleccion Residuos</string>
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
@@ -22,11 +13,7 @@
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<<<<<<< HEAD
|
||||
<string>flutter_application_1</string>
|
||||
=======
|
||||
<string>recoleccion_residuos</string>
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
@@ -37,32 +24,6 @@
|
||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
<key>UIApplicationSceneManifest</key>
|
||||
<dict>
|
||||
<key>UIApplicationSupportsMultipleScenes</key>
|
||||
<false/>
|
||||
<key>UISceneConfigurations</key>
|
||||
<dict>
|
||||
<key>UIWindowSceneSessionRoleApplication</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>UISceneClassName</key>
|
||||
<string>UIWindowScene</string>
|
||||
<key>UISceneConfigurationName</key>
|
||||
<string>flutter</string>
|
||||
<key>UISceneDelegateClassName</key>
|
||||
<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
|
||||
<key>UISceneStoryboardFile</key>
|
||||
<string>Main</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
@@ -80,12 +41,9 @@
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<<<<<<< HEAD
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true/>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
=======
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
import Flutter
|
||||
import UIKit
|
||||
|
||||
class SceneDelegate: FlutterSceneDelegate {
|
||||
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'dart:async';
|
||||
import 'package:flutter_application_1/features/auth/presentation/screens/register_screen.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
@@ -26,8 +27,8 @@ GoRouter createRouter(AuthBloc authBloc) {
|
||||
redirect: (BuildContext context, GoRouterState state) {
|
||||
final authState = authBloc.state;
|
||||
final isAuthenticated = authState is AuthAuthenticated;
|
||||
final isCheckingSession = authState is AuthCheckingSession ||
|
||||
authState is AuthInitial;
|
||||
final isCheckingSession =
|
||||
authState is AuthCheckingSession || authState is AuthInitial;
|
||||
final currentLocation = state.uri.path;
|
||||
|
||||
// Mientras se verifica la sesión, mostrar splash.
|
||||
@@ -62,6 +63,18 @@ GoRouter createRouter(AuthBloc authBloc) {
|
||||
path: AppRoutes.home,
|
||||
builder: (context, state) => const HomeScreenPlaceholder(),
|
||||
),
|
||||
// 📍 Agrega el import arriba si te lo pide:
|
||||
// import 'package:flutter_application_1/features/auth/presentation/screens/register_screen.dart';
|
||||
|
||||
GoRoute(
|
||||
path: AppRoutes.home,
|
||||
builder: (context, state) => const HomeScreenPlaceholder(),
|
||||
),
|
||||
// 📍 CORRECCIÓN: Usamos la constante oficial del proyecto en lugar del texto a mano
|
||||
GoRoute(
|
||||
path: '/register', // 📍 CORRECCIÓN: Texto plano limpio entre comillas
|
||||
builder: (context, state) => const RegisterScreen(),
|
||||
), // GoRoute
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
406
lib/features/auth/data/models/mock_waste_data.dart
Normal file
406
lib/features/auth/data/models/mock_waste_data.dart
Normal file
@@ -0,0 +1,406 @@
|
||||
import 'package:latlong2/latlong.dart';
|
||||
|
||||
// Modelo 1: Reglas de Notificaciones Push (JSON Parte 1)
|
||||
class NotificationRule {
|
||||
final String triggerEvent;
|
||||
final String condition;
|
||||
final String title;
|
||||
final String body;
|
||||
|
||||
NotificationRule({
|
||||
required this.triggerEvent,
|
||||
required this.condition,
|
||||
required this.title,
|
||||
required this.body,
|
||||
});
|
||||
}
|
||||
|
||||
// Modelo 2: Catálogo de Colonias y Horarios (JSON Parte 2)
|
||||
class ZoneSchedule {
|
||||
final String colonia;
|
||||
final String routeId;
|
||||
final String horarioEstimado;
|
||||
|
||||
ZoneSchedule({
|
||||
required this.colonia,
|
||||
required this.routeId,
|
||||
required this.horarioEstimado,
|
||||
});
|
||||
}
|
||||
|
||||
// Modelo 3: Geometría Perimetral de la Ruta (JSON Parte 3 de tus Imágenes)
|
||||
class RouteTelemetry {
|
||||
final String routeId;
|
||||
final String name;
|
||||
final int truckId;
|
||||
final String status;
|
||||
final List<LatLng> boundaryPoints;
|
||||
|
||||
RouteTelemetry({
|
||||
required this.routeId,
|
||||
required this.name,
|
||||
required this.truckId,
|
||||
required this.status,
|
||||
required this.boundaryPoints,
|
||||
});
|
||||
}
|
||||
|
||||
class MockWasteData {
|
||||
// Datos reales cargados de tu JSON Parte 1
|
||||
static final List<NotificationRule> alerts = [
|
||||
NotificationRule(
|
||||
triggerEvent: 'ROUTE_START',
|
||||
condition: 'Cuando positionId cambia de 1 a 2',
|
||||
title: '¡Ruta Iniciada!',
|
||||
body:
|
||||
'El camión recolector ha salido del Relleno Sanitario rumbo a tu sector. Asegúrate de tener listos tus residuos.',
|
||||
),
|
||||
NotificationRule(
|
||||
triggerEvent: 'TRUCK_PROXIMITY',
|
||||
condition: 'Cuando positionId llega a 4 (punto previo al destino)',
|
||||
title: 'Camión Cercano 🚚',
|
||||
body:
|
||||
'El camión está a menos de 15 minutos de tu domicilio. Es momento de sacar tus bolsas a la acera.',
|
||||
),
|
||||
NotificationRule(
|
||||
triggerEvent: 'ROUTE_COMPLETED',
|
||||
condition: 'Cuando positionId llega a 8 (retorno al basurero)',
|
||||
title: 'Servicio Finalizado',
|
||||
body:
|
||||
'El camión de tu sector ha concluido su jornada de recolección diaria.',
|
||||
),
|
||||
];
|
||||
|
||||
// Datos reales cargados de tu JSON Parte 2 (Expandido para dar soporte a más rutas)
|
||||
static final List<ZoneSchedule> schedules = [
|
||||
ZoneSchedule(
|
||||
colonia: 'Zona Centro',
|
||||
routeId: 'RUTA-01',
|
||||
horarioEstimado: 'Matutino (06:30 - 07:15)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'Las Arboledas',
|
||||
routeId: 'RUTA-01',
|
||||
horarioEstimado: 'Matutino (07:00 - 07:30)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'San Juanico',
|
||||
routeId: 'RUTA-03',
|
||||
horarioEstimado: 'Matutino (06:45 - 07:15)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'Los Olivos',
|
||||
routeId: 'RUTA-04',
|
||||
horarioEstimado: 'Matutino (07:00 - 07:40)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'Rancho Seco',
|
||||
routeId: 'RUTA-05',
|
||||
horarioEstimado: 'Vespertino (14:15 - 15:00)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'Las Insurgentes',
|
||||
routeId: 'RUTA-12',
|
||||
horarioEstimado: 'Matutino (06:35 - 07:10)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'Trojes',
|
||||
routeId: 'RUTA-13',
|
||||
horarioEstimado: 'Matutino (06:40 - 07:10)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'Tecnológico',
|
||||
routeId: 'RUTA-02',
|
||||
horarioEstimado: 'Matutino (07:15 - 08:00)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'Rumbos de Roque',
|
||||
routeId: 'RUTA-06',
|
||||
horarioEstimado: 'Matutino (08:30 - 09:15)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'Ciudad Industrial',
|
||||
routeId: 'RUTA-07',
|
||||
horarioEstimado: 'Vespertino (15:00 - 16:00)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'Universidad Latina',
|
||||
routeId: 'RUTA-08',
|
||||
horarioEstimado: 'Matutino (07:45 - 08:30)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'Hospital General',
|
||||
routeId: 'RUTA-09',
|
||||
horarioEstimado: 'Vespertino (13:30 - 14:15)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'Eje Juan Pablo II',
|
||||
routeId: 'RUTA-10',
|
||||
horarioEstimado: 'Nocturno (19:00 - 20:00)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'Torres Landa',
|
||||
routeId: 'RUTA-11',
|
||||
horarioEstimado: 'Matutino (06:50 - 07:30)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'La Toscana',
|
||||
routeId: 'RUTA-14',
|
||||
horarioEstimado: 'Nocturno (20:15 - 21:00)'),
|
||||
ZoneSchedule(
|
||||
colonia: 'San José de Celaya',
|
||||
routeId: 'RUTA-15',
|
||||
horarioEstimado: 'Vespertino (16:30 - 17:15)'),
|
||||
];
|
||||
|
||||
// Base de datos de Geometría extraída de tus capturas (Mapeo RUTA-01 a RUTA-15)
|
||||
static final Map<String, RouteTelemetry> boundaries = {
|
||||
'RUTA-01': RouteTelemetry(
|
||||
routeId: 'RUTA-01',
|
||||
name: 'Zona Centro - Las Arboledas',
|
||||
truckId: 101,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5185, -100.8450),
|
||||
LatLng(20.5215, -100.8142),
|
||||
LatLng(20.5212, -100.8175),
|
||||
LatLng(20.5210, -100.8210),
|
||||
LatLng(20.5235, -100.8212),
|
||||
LatLng(20.5260, -100.8215),
|
||||
LatLng(20.5111, -100.9037)
|
||||
],
|
||||
),
|
||||
'RUTA-02': RouteTelemetry(
|
||||
routeId: 'RUTA-02',
|
||||
name: 'Sector Norte - Av. Tecnológico',
|
||||
truckId: 102,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5280, -100.8135),
|
||||
LatLng(20.5410, -100.8130),
|
||||
LatLng(20.5445, -100.8132),
|
||||
LatLng(20.5480, -100.8135),
|
||||
LatLng(20.5515, -100.8160),
|
||||
LatLng(20.5540, -100.8110),
|
||||
LatLng(20.5111, -100.9037)
|
||||
],
|
||||
),
|
||||
'RUTA-03': RouteTelemetry(
|
||||
routeId: 'RUTA-03',
|
||||
name: 'Sector Poniente - San Juanico',
|
||||
truckId: 103,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5185, -100.8510),
|
||||
LatLng(20.5290, -100.8320),
|
||||
LatLng(20.5315, -100.8355),
|
||||
LatLng(20.5340, -100.8390),
|
||||
LatLng(20.5362, -100.8425),
|
||||
LatLng(20.5330, -100.8430),
|
||||
LatLng(20.5111, -100.9037)
|
||||
],
|
||||
),
|
||||
'RUTA-04': RouteTelemetry(
|
||||
routeId: 'RUTA-04',
|
||||
name: 'Oriente - Los Olivos',
|
||||
truckId: 104,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5260, -100.8010),
|
||||
LatLng(20.5295, -100.7890),
|
||||
LatLng(20.5320, -100.7850),
|
||||
LatLng(20.5350, -100.7790),
|
||||
LatLng(20.5310, -100.7760),
|
||||
LatLng(20.5270, -100.7820),
|
||||
LatLng(20.5111, -100.9037)
|
||||
],
|
||||
),
|
||||
'RUTA-05': RouteTelemetry(
|
||||
routeId: 'RUTA-05',
|
||||
name: 'Sector Sur - Rancho Seco',
|
||||
truckId: 105,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5050, -100.8620),
|
||||
LatLng(20.5020, -100.8350),
|
||||
LatLng(20.4995, -100.8210),
|
||||
LatLng(20.4970, -100.8150),
|
||||
LatLng(20.5010, -100.8120),
|
||||
LatLng(20.5060, -100.8160),
|
||||
LatLng(20.5111, -100.9037)
|
||||
],
|
||||
),
|
||||
'RUTA-06': RouteTelemetry(
|
||||
routeId: 'RUTA-06',
|
||||
name: 'Norte Extremo - Rumbos de Roque',
|
||||
truckId: 106,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5380, -100.8380),
|
||||
LatLng(20.5610, -100.8370),
|
||||
LatLng(20.5750, -100.8360),
|
||||
LatLng(20.5820, -100.8350),
|
||||
LatLng(20.5780, -100.8310),
|
||||
LatLng(20.5650, -100.8320),
|
||||
LatLng(20.5111, -100.9037)
|
||||
],
|
||||
),
|
||||
'RUTA-07': RouteTelemetry(
|
||||
routeId: 'RUTA-07',
|
||||
name: 'Nororiente - Ciudad Industrial',
|
||||
truckId: 107,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5350, -100.8050),
|
||||
LatLng(20.5450, -100.7950),
|
||||
LatLng(20.5480, -100.7850),
|
||||
LatLng(20.5510, -100.7750),
|
||||
LatLng(20.5460, -100.7720),
|
||||
LatLng(20.5390, -100.7820),
|
||||
LatLng(20.5111, -100.9037)
|
||||
],
|
||||
),
|
||||
'RUTA-08': RouteTelemetry(
|
||||
routeId: 'RUTA-08',
|
||||
name: 'Suroriente - Universidad Latina',
|
||||
truckId: 108,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5180, -100.8310),
|
||||
LatLng(20.5245, -100.7980),
|
||||
LatLng(20.5210, -100.7995),
|
||||
LatLng(20.5175, -100.8010),
|
||||
LatLng(20.5140, -100.8030),
|
||||
LatLng(20.5110, -100.8055),
|
||||
LatLng(20.5111, -100.9037)
|
||||
],
|
||||
),
|
||||
'RUTA-09': RouteTelemetry(
|
||||
routeId: 'RUTA-09',
|
||||
name: 'Poniente - Hospital General',
|
||||
truckId: 109,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5210, -100.8650),
|
||||
LatLng(20.5260, -100.8520),
|
||||
LatLng(20.5275, -100.8490),
|
||||
LatLng(20.5285, -100.8460),
|
||||
LatLng(20.5250, -100.8470),
|
||||
LatLng(20.5220, -100.8550),
|
||||
LatLng(20.5111, -100.9037)
|
||||
],
|
||||
),
|
||||
'RUTA-10': RouteTelemetry(
|
||||
routeId: 'RUTA-10',
|
||||
name: 'Eje Juan Pablo II - Sede UG Sur',
|
||||
truckId: 110,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5015, -100.8520),
|
||||
LatLng(20.4990, -100.8390),
|
||||
LatLng(20.4950, -100.8320),
|
||||
LatLng(20.4920, -100.8280),
|
||||
LatLng(20.4945, -100.8240),
|
||||
LatLng(20.4980, -100.8300),
|
||||
LatLng(20.5111, -100.9037)
|
||||
],
|
||||
),
|
||||
'RUTA-11': RouteTelemetry(
|
||||
routeId: 'RUTA-11',
|
||||
name: 'Zona de Oro - Torres Landa',
|
||||
truckId: 111,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5240, -100.8350),
|
||||
LatLng(20.5280, -100.8250),
|
||||
LatLng(20.5295, -100.8210),
|
||||
LatLng(20.5310, -100.8170),
|
||||
LatLng(20.5290, -100.8140),
|
||||
LatLng(20.5260, -100.8200),
|
||||
LatLng(20.5111, -100.9037)
|
||||
],
|
||||
),
|
||||
'RUTA-12': RouteTelemetry(
|
||||
routeId: 'RUTA-12',
|
||||
name: 'Nororiente - Las Insurgentes',
|
||||
truckId: 112,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5280, -100.8080),
|
||||
LatLng(20.5320, -100.7980),
|
||||
LatLng(20.5340, -100.7940),
|
||||
LatLng(20.5360, -100.7900),
|
||||
LatLng(20.5310, -100.7920),
|
||||
LatLng(20.5270, -100.8020),
|
||||
LatLng(20.5111, -100.9037)
|
||||
],
|
||||
),
|
||||
'RUTA-13': RouteTelemetry(
|
||||
routeId: 'RUTA-13',
|
||||
name: 'Sector Norte - Trojes e Irrigación',
|
||||
truckId: 113,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5360, -100.8190),
|
||||
LatLng(20.5420, -100.8080),
|
||||
LatLng(20.5440, -100.8040),
|
||||
LatLng(20.5460, -100.8000),
|
||||
LatLng(20.5410, -100.8020),
|
||||
LatLng(20.5370, -100.8120),
|
||||
LatLng(20.5111, -100.9037)
|
||||
],
|
||||
),
|
||||
'RUTA-14': RouteTelemetry(
|
||||
routeId: 'RUTA-14',
|
||||
name: 'Sur Poniente - La Toscana',
|
||||
truckId: 114,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5150, -100.8580),
|
||||
LatLng(20.5140, -100.8390),
|
||||
LatLng(20.5125, -100.8310),
|
||||
LatLng(20.5110, -100.8250),
|
||||
LatLng(20.5135, -100.8280),
|
||||
LatLng(20.5160, -100.8420),
|
||||
LatLng(20.5111, -100.9037)
|
||||
],
|
||||
),
|
||||
'RUTA-15': RouteTelemetry(
|
||||
routeId: 'RUTA-15',
|
||||
name: 'Norponiente - Camino a San José de Celaya',
|
||||
truckId: 115,
|
||||
status: 'EN_RUTA',
|
||||
boundaryPoints: [
|
||||
LatLng(20.5111, -100.9037),
|
||||
LatLng(20.5320, -100.8590),
|
||||
LatLng(20.5390, -100.8480),
|
||||
LatLng(20.5420, -100.8440),
|
||||
LatLng(20.5450, -100.8410),
|
||||
LatLng(20.5410, -100.8430),
|
||||
LatLng(20.5360, -100.8520),
|
||||
LatLng(20.5111, -100.9037),
|
||||
],
|
||||
),
|
||||
}; // 🔒 AQUÍ SE CIERRA EL MAPA DE BOUNDARIES
|
||||
} // 🔒 AQUÍ SE CIERRA LA CLASE MOCKWASTEDATA
|
||||
|
||||
// 📍 LA CLASE DE OPTIMIZACIÓN DE COSTOS DEBE IR TOTALMENTE AQUÍ AFUERA:
|
||||
class SpatialAnalysisService {
|
||||
|
||||
// Simula la fórmula matemática de Haversine para calcular distancias en el Backend
|
||||
// Esto evita hacer llamadas de pago a la Distance Matrix API de Google Maps
|
||||
static double calcularDistanciaEntrePuntos(LatLng p1, LatLng p2) {
|
||||
// El Backend resuelve esto de forma interna con PostGIS o librerías del lenguaje
|
||||
return const Distance().as(LengthUnit.Meter, p1, p2);
|
||||
}
|
||||
|
||||
// Simula la consulta única a OpenStreetMap Nominatim en el registro
|
||||
static Future<LatLng> geocodificarDomicilioUnicaVez(String direccion, String colonia) async {
|
||||
final schedule = MockWasteData.schedules.firstWhere(
|
||||
(e) => e.colonia.toLowerCase() == colonia.toLowerCase(),
|
||||
orElse: () => MockWasteData.schedules.first,
|
||||
);
|
||||
final telemetry = MockWasteData.boundaries[schedule.routeId]!;
|
||||
return telemetry.boundaryPoints.first; // Retorna la coordenada almacenada
|
||||
}
|
||||
}
|
||||
@@ -7,15 +7,6 @@ import '../bloc/auth_event.dart';
|
||||
import '../bloc/auth_state.dart';
|
||||
import '../widgets/privacy_notice_card.dart';
|
||||
|
||||
/// Pantalla de inicio de sesión — MVP WasteNotify.
|
||||
///
|
||||
/// Diseño: Limpio, institucional, con paleta verde-tierra.
|
||||
/// Incluye mensajería preventiva integrada de forma no intrusiva.
|
||||
///
|
||||
/// Credenciales de demo:
|
||||
/// Ciudadano: ciudadano@ejemplo.com / password123
|
||||
/// Operador: operador@ejemplo.com / operador456
|
||||
/// Teléfono: 5551234567 / pass1234
|
||||
class LoginScreen extends StatefulWidget {
|
||||
const LoginScreen({super.key});
|
||||
|
||||
@@ -23,8 +14,7 @@ class LoginScreen extends StatefulWidget {
|
||||
State<LoginScreen> createState() => _LoginScreenState();
|
||||
}
|
||||
|
||||
class _LoginScreenState extends State<LoginScreen>
|
||||
with SingleTickerProviderStateMixin {
|
||||
class _LoginScreenState extends State<LoginScreen> with SingleTickerProviderStateMixin {
|
||||
final _formKey = GlobalKey<FormState>();
|
||||
final _identifierController = TextEditingController();
|
||||
final _passwordController = TextEditingController();
|
||||
@@ -96,316 +86,127 @@ class _LoginScreenState extends State<LoginScreen>
|
||||
child: Scaffold(
|
||||
backgroundColor: AppTheme.warmWhite,
|
||||
body: SafeArea(
|
||||
child: CustomScrollView(
|
||||
slivers: [
|
||||
SliverFillRemaining(
|
||||
hasScrollBody: false,
|
||||
child: FadeTransition(
|
||||
opacity: _fadeAnim,
|
||||
child: SlideTransition(
|
||||
position: _slideAnim,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 28),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
const SizedBox(height: 48),
|
||||
_buildHeader(),
|
||||
const SizedBox(height: 32),
|
||||
const ScheduleWarningBanner(),
|
||||
const SizedBox(height: 32),
|
||||
_buildForm(context),
|
||||
const SizedBox(height: 24),
|
||||
const PrivacyNoticeCard(),
|
||||
const SizedBox(height: 32),
|
||||
_buildDemoHint(),
|
||||
const SizedBox(height: 24),
|
||||
],
|
||||
child: Form(
|
||||
key: _formKey,
|
||||
child: CustomScrollView(
|
||||
slivers: [
|
||||
SliverFillRemaining(
|
||||
hasScrollBody: false,
|
||||
child: FadeTransition(
|
||||
opacity: _fadeAnim,
|
||||
child: SlideTransition(
|
||||
position: _slideAnim,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 28),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: [
|
||||
const SizedBox(height: 48),
|
||||
_buildHeader(),
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
'Sistema Municipal de Recolección Residencial\nCelaya, Guanajuato',
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: 12, color: Colors.grey.shade600, height: 1.3),
|
||||
),
|
||||
const SizedBox(height: 32),
|
||||
// Asegúrate de que este widget esté definido en tu proyecto o cámbialo por un placeholder
|
||||
// const ScheduleWarningBanner(),
|
||||
const SizedBox(height: 32),
|
||||
|
||||
// --- CAMPO: EMAIL / IDENTIFICADOR ---
|
||||
TextFormField(
|
||||
controller: _identifierController,
|
||||
keyboardType: TextInputType.emailAddress,
|
||||
decoration: const InputDecoration(
|
||||
labelText: 'Correo Electrónico o Teléfono',
|
||||
prefixIcon: Icon(Icons.email_outlined),
|
||||
border: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(12))),
|
||||
),
|
||||
validator: (value) =>
|
||||
(value == null || value.trim().isEmpty)
|
||||
? 'Por favor, ingresa tus datos de acceso'
|
||||
: null,
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
|
||||
// --- CAMPO: CONTRASEÑA ---
|
||||
TextFormField(
|
||||
controller: _passwordController,
|
||||
obscureText: _obscurePassword,
|
||||
decoration: InputDecoration(
|
||||
labelText: 'Contraseña de Acceso',
|
||||
prefixIcon: const Icon(Icons.lock_outline_rounded),
|
||||
suffixIcon: IconButton(
|
||||
icon: Icon(_obscurePassword ? Icons.visibility_off : Icons.visibility),
|
||||
onPressed: () => setState(() => _obscurePassword = !_obscurePassword),
|
||||
),
|
||||
border: const OutlineInputBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(12))),
|
||||
),
|
||||
validator: (value) => (value == null || value.isEmpty)
|
||||
? 'Por favor, introduce tu contraseña'
|
||||
: null,
|
||||
),
|
||||
const SizedBox(height: 32),
|
||||
|
||||
// --- CONTENEDOR REACTIVO DE BOTONES ---
|
||||
BlocBuilder<AuthBloc, AuthState>(
|
||||
builder: (context, state) {
|
||||
final isLoading = state is AuthLoading;
|
||||
|
||||
return AnimatedContainer(
|
||||
duration: const Duration(milliseconds: 200),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
boxShadow: isLoading
|
||||
? []
|
||||
: [
|
||||
BoxShadow(
|
||||
color: AppTheme.leafGreen.withOpacity(0.3),
|
||||
blurRadius: 16,
|
||||
offset: const Offset(0, 6),
|
||||
),
|
||||
],
|
||||
),
|
||||
child: ElevatedButton(
|
||||
onPressed: isLoading ? null : () => _submit(context),
|
||||
style: ElevatedButton.styleFrom(
|
||||
backgroundColor: isLoading
|
||||
? AppTheme.mintGreen.withOpacity(0.7)
|
||||
: AppTheme.leafGreen,
|
||||
disabledBackgroundColor: AppTheme.mintGreen.withOpacity(0.6),
|
||||
padding: const EdgeInsets.symmetric(vertical: 16),
|
||||
),
|
||||
child: isLoading
|
||||
? const CircularProgressIndicator(color: Colors.white)
|
||||
: const Text('Iniciar Sesión', style: TextStyle(color: Colors.white)),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
const PrivacyNoticeCard(),
|
||||
const SizedBox(height: 32),
|
||||
_buildDemoHint(),
|
||||
const SizedBox(height: 24),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildHeader() {
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// Logo / ícono principal
|
||||
Container(
|
||||
width: 60,
|
||||
height: 60,
|
||||
decoration: BoxDecoration(
|
||||
gradient: const LinearGradient(
|
||||
colors: [AppTheme.leafGreen, AppTheme.forestGreen],
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(16),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: AppTheme.leafGreen.withOpacity(0.35),
|
||||
blurRadius: 12,
|
||||
offset: const Offset(0, 4),
|
||||
),
|
||||
],
|
||||
),
|
||||
child: const Icon(
|
||||
Icons.recycling_rounded,
|
||||
color: Colors.white,
|
||||
size: 34,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
RichText(
|
||||
text: const TextSpan(
|
||||
style: TextStyle(
|
||||
fontSize: 28,
|
||||
fontWeight: FontWeight.w800,
|
||||
color: AppTheme.charcoal,
|
||||
height: 1.15,
|
||||
),
|
||||
children: [
|
||||
TextSpan(text: 'Waste'),
|
||||
TextSpan(
|
||||
text: 'Notify',
|
||||
style: TextStyle(color: AppTheme.leafGreen),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
'Notificaciones de recolección\nsin rastreo, sin riesgos.',
|
||||
style: TextStyle(
|
||||
fontSize: 14.5,
|
||||
color: AppTheme.midGray,
|
||||
height: 1.5,
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildForm(BuildContext context) {
|
||||
return Form(
|
||||
key: _formKey,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: [
|
||||
// --- Campo: Email o Teléfono ---
|
||||
TextFormField(
|
||||
controller: _identifierController,
|
||||
keyboardType: TextInputType.emailAddress,
|
||||
textInputAction: TextInputAction.next,
|
||||
autocorrect: false,
|
||||
decoration: const InputDecoration(
|
||||
labelText: 'Correo electrónico o teléfono',
|
||||
hintText: 'ej. juan@correo.com o 5551234567',
|
||||
prefixIcon: Icon(Icons.person_outline_rounded),
|
||||
),
|
||||
validator: (value) {
|
||||
if (value == null || value.trim().isEmpty) {
|
||||
return 'Ingresa tu correo o número de teléfono';
|
||||
}
|
||||
final trimmed = value.trim();
|
||||
final isEmail = RegExp(
|
||||
r'^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$',
|
||||
).hasMatch(trimmed);
|
||||
final isPhone = RegExp(r'^\d{7,15}$').hasMatch(trimmed);
|
||||
if (!isEmail && !isPhone) {
|
||||
return 'Ingresa un correo válido o un número de 7-15 dígitos';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
|
||||
// --- Campo: Contraseña ---
|
||||
TextFormField(
|
||||
controller: _passwordController,
|
||||
obscureText: _obscurePassword,
|
||||
textInputAction: TextInputAction.done,
|
||||
onFieldSubmitted: (_) => _submit(context),
|
||||
decoration: InputDecoration(
|
||||
labelText: 'Contraseña',
|
||||
hintText: 'Mínimo 6 caracteres',
|
||||
prefixIcon: const Icon(Icons.lock_outline_rounded),
|
||||
suffixIcon: IconButton(
|
||||
icon: Icon(
|
||||
_obscurePassword
|
||||
? Icons.visibility_off_outlined
|
||||
: Icons.visibility_outlined,
|
||||
color: AppTheme.midGray,
|
||||
),
|
||||
onPressed: () =>
|
||||
setState(() => _obscurePassword = !_obscurePassword),
|
||||
tooltip: _obscurePassword
|
||||
? 'Mostrar contraseña'
|
||||
: 'Ocultar contraseña',
|
||||
),
|
||||
),
|
||||
validator: (value) {
|
||||
if (value == null || value.isEmpty) {
|
||||
return 'Ingresa tu contraseña';
|
||||
}
|
||||
if (value.length < 6) {
|
||||
return 'La contraseña debe tener al menos 6 caracteres';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
|
||||
// --- Olvidé mi contraseña ---
|
||||
Align(
|
||||
alignment: Alignment.centerRight,
|
||||
child: TextButton(
|
||||
onPressed: () {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Recuperación de contraseña — Próximamente'),
|
||||
),
|
||||
);
|
||||
},
|
||||
child: const Text(
|
||||
'¿Olvidaste tu contraseña?',
|
||||
style: TextStyle(fontSize: 13),
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
|
||||
// --- Botón Principal ---
|
||||
BlocBuilder<AuthBloc, AuthState>(
|
||||
builder: (context, state) {
|
||||
final isLoading = state is AuthLoading;
|
||||
return AnimatedContainer(
|
||||
duration: const Duration(milliseconds: 200),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
boxShadow: isLoading
|
||||
? []
|
||||
: [
|
||||
BoxShadow(
|
||||
color: AppTheme.leafGreen.withOpacity(0.4),
|
||||
blurRadius: 16,
|
||||
offset: const Offset(0, 6),
|
||||
),
|
||||
],
|
||||
),
|
||||
child: ElevatedButton(
|
||||
onPressed: isLoading ? null : () => _submit(context),
|
||||
style: ElevatedButton.styleFrom(
|
||||
backgroundColor: isLoading
|
||||
? AppTheme.mintGreen.withOpacity(0.7)
|
||||
: AppTheme.leafGreen,
|
||||
disabledBackgroundColor:
|
||||
AppTheme.mintGreen.withOpacity(0.6),
|
||||
),
|
||||
child: isLoading
|
||||
? const SizedBox(
|
||||
height: 22,
|
||||
width: 22,
|
||||
child: CircularProgressIndicator(
|
||||
strokeWidth: 2.5,
|
||||
valueColor: AlwaysStoppedAnimation(Colors.white),
|
||||
),
|
||||
)
|
||||
: const Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Icon(Icons.login_rounded, size: 20),
|
||||
SizedBox(width: 10),
|
||||
Text('Ingresar de forma segura'),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildDemoHint() {
|
||||
return Container(
|
||||
padding: const EdgeInsets.all(14),
|
||||
decoration: BoxDecoration(
|
||||
color: AppTheme.sandBeige,
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
border: Border.all(color: const Color(0xFFFFE082), width: 1),
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
const Icon(Icons.science_outlined,
|
||||
size: 15, color: AppTheme.earthBrown),
|
||||
const SizedBox(width: 6),
|
||||
Text(
|
||||
'Demo MVP — Credenciales de prueba',
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
fontWeight: FontWeight.w700,
|
||||
color: AppTheme.earthBrown,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 6),
|
||||
_DemoCredential(
|
||||
label: 'Ciudadano',
|
||||
user: 'ciudadano@ejemplo.com',
|
||||
pass: 'password123',
|
||||
),
|
||||
_DemoCredential(
|
||||
label: 'Operador',
|
||||
user: 'operador@ejemplo.com',
|
||||
pass: 'operador456',
|
||||
),
|
||||
_DemoCredential(
|
||||
label: 'Teléfono',
|
||||
user: '5551234567',
|
||||
pass: 'pass1234',
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _DemoCredential extends StatelessWidget {
|
||||
final String label;
|
||||
final String user;
|
||||
final String pass;
|
||||
|
||||
const _DemoCredential({
|
||||
required this.label,
|
||||
required this.user,
|
||||
required this.pass,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(top: 3),
|
||||
child: Text(
|
||||
'$label: $user / $pass',
|
||||
style: const TextStyle(
|
||||
fontSize: 11.5,
|
||||
color: AppTheme.earthBrown,
|
||||
fontFamily: 'monospace',
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
// Métodos auxiliares creados como placeholders para evitar errores de compilación
|
||||
Widget _buildHeader() => const Center(child: Text("WasteNotify", style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold)));
|
||||
Widget _buildDemoHint() => const Center(child: Text("Demo: ciudadano@ejemplo.com / password123", style: TextStyle(fontSize: 12)));
|
||||
}
|
||||
|
||||
100
lib/features/auth/presentation/screens/register_screen.dart
Normal file
100
lib/features/auth/presentation/screens/register_screen.dart
Normal file
@@ -0,0 +1,100 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:flutter_application_1/features/auth/data/models/mock_waste_data.dart';
|
||||
|
||||
class RegisterScreen extends StatefulWidget {
|
||||
const RegisterScreen({super.key});
|
||||
|
||||
@override
|
||||
State<RegisterScreen> createState() => _RegisterScreenState();
|
||||
}
|
||||
|
||||
class _RegisterScreenState extends State<RegisterScreen> {
|
||||
final _formKey = GlobalKey<FormState>();
|
||||
String _selectedColonia = 'Centro';
|
||||
final _nameController = TextEditingController();
|
||||
final _emailController = TextEditingController();
|
||||
final _passwordController = TextEditingController();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(title: const Text('Crear Cuenta Ciudadana')),
|
||||
body: SingleChildScrollView(
|
||||
padding: const EdgeInsets.all(24.0),
|
||||
child: Form(
|
||||
key: _formKey,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: [
|
||||
const Icon(Icons.assignment_ind_outlined, size: 80, color: Colors.green),
|
||||
const SizedBox(height: 16),
|
||||
Text(
|
||||
'Regístrate para recibir avisos de recolección en tu zona',
|
||||
textAlign: TextAlign.center,
|
||||
style: Theme.of(context).textTheme.bodyLarge,
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
TextFormField(
|
||||
controller: _nameController,
|
||||
decoration: const InputDecoration(labelText: 'Nombre Completo', border: OutlineInputBorder()),
|
||||
validator: (v) => v!.isEmpty ? 'Ingresa tu nombre' : null,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
TextFormField(
|
||||
controller: _emailController,
|
||||
decoration: const InputDecoration(labelText: 'Correo o Teléfono', border: OutlineInputBorder()),
|
||||
validator: (v) => v!.isEmpty ? 'Ingresa tus datos' : null,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
TextFormField(
|
||||
controller: _passwordController,
|
||||
obscureText: true,
|
||||
decoration: const InputDecoration(labelText: 'Contraseña', border: OutlineInputBorder()),
|
||||
validator: (v) => v!.length < 6 ? 'Mínimo 6 caracteres' : null,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
|
||||
// Dropdown para seleccionar la Colonia (Requisito MVP)
|
||||
DropdownButtonFormField<String>(
|
||||
value: _selectedColonia,
|
||||
decoration: const InputDecoration(labelText: 'Selecciona tu Colonia / Domicilio', border: OutlineInputBorder()),
|
||||
items: MockWasteData.schedules.map((zone) {
|
||||
return DropdownMenuItem(value: zone.colonia, child: Text(zone.colonia));
|
||||
}).toList(),
|
||||
onChanged: (val) => setState(() => _selectedColonia = val!),
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
|
||||
// Mensajería Preventiva Legal
|
||||
Card(
|
||||
color: Colors.amber.shade50,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(12.0),
|
||||
child: Text(
|
||||
'🔒 Privacidad Garantizada:\nAl registrar tu domicilio, tu cuenta operará bajo el principio de "Visión de Túnel". Solo verás alertas de tu sector. Está prohibido el rastreo de flotillas.',
|
||||
style: TextStyle(color: Colors.amber.shade900, fontSize: 13, fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 24),
|
||||
ElevatedButton(
|
||||
style: ElevatedButton.styleFrom(padding: const EdgeInsets.symmetric(vertical: 16), backgroundColor: Colors.green),
|
||||
onPressed: () {
|
||||
if (_formKey.currentState!.validate()) {
|
||||
// Simulación de Registro Exitoso: Navega al Home enviando la colonia elegida
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(content: Text('Cuenta creada con éxito (Modo Simulación)')),
|
||||
);
|
||||
context.go('/home?colonia=$_selectedColonia');
|
||||
}
|
||||
},
|
||||
child: const Text('Registrarse', style: TextStyle(color: Colors.white, fontSize: 16)),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -4,17 +4,10 @@ project(runner LANGUAGES CXX)
|
||||
|
||||
# The name of the executable created for the application. Change this to change
|
||||
# the on-disk name of your application.
|
||||
<<<<<<< HEAD
|
||||
set(BINARY_NAME "flutter_application_1")
|
||||
# The unique GTK application identifier for this application. See:
|
||||
# https://wiki.gnome.org/HowDoI/ChooseApplicationID
|
||||
set(APPLICATION_ID "com.example.flutter_application_1")
|
||||
=======
|
||||
set(BINARY_NAME "recoleccion_residuos")
|
||||
# The unique GTK application identifier for this application. See:
|
||||
# https://wiki.gnome.org/HowDoI/ChooseApplicationID
|
||||
set(APPLICATION_ID "com.example.recoleccion_residuos")
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
|
||||
# versions of CMake.
|
||||
|
||||
@@ -14,14 +14,6 @@ struct _MyApplication {
|
||||
|
||||
G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION)
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
// Called when first Flutter frame received.
|
||||
static void first_frame_cb(MyApplication* self, FlView* view) {
|
||||
gtk_widget_show(gtk_widget_get_toplevel(GTK_WIDGET(view)));
|
||||
}
|
||||
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
// Implements GApplication::activate.
|
||||
static void my_application_activate(GApplication* application) {
|
||||
MyApplication* self = MY_APPLICATION(application);
|
||||
@@ -48,7 +40,6 @@ static void my_application_activate(GApplication* application) {
|
||||
if (use_header_bar) {
|
||||
GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
|
||||
gtk_widget_show(GTK_WIDGET(header_bar));
|
||||
<<<<<<< HEAD
|
||||
gtk_header_bar_set_title(header_bar, "flutter_application_1");
|
||||
gtk_header_bar_set_show_close_button(header_bar, TRUE);
|
||||
gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));
|
||||
@@ -66,64 +57,22 @@ static void my_application_activate(GApplication* application) {
|
||||
gtk_widget_show(GTK_WIDGET(view));
|
||||
gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));
|
||||
|
||||
=======
|
||||
gtk_header_bar_set_title(header_bar, "recoleccion_residuos");
|
||||
gtk_header_bar_set_show_close_button(header_bar, TRUE);
|
||||
gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));
|
||||
} else {
|
||||
gtk_window_set_title(window, "recoleccion_residuos");
|
||||
}
|
||||
|
||||
gtk_window_set_default_size(window, 1280, 720);
|
||||
|
||||
g_autoptr(FlDartProject) project = fl_dart_project_new();
|
||||
fl_dart_project_set_dart_entrypoint_arguments(
|
||||
project, self->dart_entrypoint_arguments);
|
||||
|
||||
FlView* view = fl_view_new(project);
|
||||
GdkRGBA background_color;
|
||||
// Background defaults to black, override it here if necessary, e.g. #00000000
|
||||
// for transparent.
|
||||
gdk_rgba_parse(&background_color, "#000000");
|
||||
fl_view_set_background_color(view, &background_color);
|
||||
gtk_widget_show(GTK_WIDGET(view));
|
||||
gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));
|
||||
|
||||
// Show the window when Flutter renders.
|
||||
// Requires the view to be realized so we can start rendering.
|
||||
g_signal_connect_swapped(view, "first-frame", G_CALLBACK(first_frame_cb),
|
||||
self);
|
||||
gtk_widget_realize(GTK_WIDGET(view));
|
||||
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
fl_register_plugins(FL_PLUGIN_REGISTRY(view));
|
||||
|
||||
gtk_widget_grab_focus(GTK_WIDGET(view));
|
||||
}
|
||||
|
||||
// Implements GApplication::local_command_line.
|
||||
<<<<<<< HEAD
|
||||
static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) {
|
||||
=======
|
||||
static gboolean my_application_local_command_line(GApplication* application,
|
||||
gchar*** arguments,
|
||||
int* exit_status) {
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
MyApplication* self = MY_APPLICATION(application);
|
||||
// Strip out the first argument as it is the binary name.
|
||||
self->dart_entrypoint_arguments = g_strdupv(*arguments + 1);
|
||||
|
||||
g_autoptr(GError) error = nullptr;
|
||||
if (!g_application_register(application, nullptr, &error)) {
|
||||
<<<<<<< HEAD
|
||||
g_warning("Failed to register: %s", error->message);
|
||||
*exit_status = 1;
|
||||
return TRUE;
|
||||
=======
|
||||
g_warning("Failed to register: %s", error->message);
|
||||
*exit_status = 1;
|
||||
return TRUE;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
}
|
||||
|
||||
g_application_activate(application);
|
||||
@@ -134,11 +83,7 @@ static gboolean my_application_local_command_line(GApplication* application,
|
||||
|
||||
// Implements GApplication::startup.
|
||||
static void my_application_startup(GApplication* application) {
|
||||
<<<<<<< HEAD
|
||||
//MyApplication* self = MY_APPLICATION(object);
|
||||
=======
|
||||
// MyApplication* self = MY_APPLICATION(object);
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
// Perform any actions required at application startup.
|
||||
|
||||
@@ -147,11 +92,7 @@ static void my_application_startup(GApplication* application) {
|
||||
|
||||
// Implements GApplication::shutdown.
|
||||
static void my_application_shutdown(GApplication* application) {
|
||||
<<<<<<< HEAD
|
||||
//MyApplication* self = MY_APPLICATION(object);
|
||||
=======
|
||||
// MyApplication* self = MY_APPLICATION(object);
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
// Perform any actions required at application shutdown.
|
||||
|
||||
@@ -167,12 +108,7 @@ static void my_application_dispose(GObject* object) {
|
||||
|
||||
static void my_application_class_init(MyApplicationClass* klass) {
|
||||
G_APPLICATION_CLASS(klass)->activate = my_application_activate;
|
||||
<<<<<<< HEAD
|
||||
G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line;
|
||||
=======
|
||||
G_APPLICATION_CLASS(klass)->local_command_line =
|
||||
my_application_local_command_line;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
G_APPLICATION_CLASS(klass)->startup = my_application_startup;
|
||||
G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown;
|
||||
G_OBJECT_CLASS(klass)->dispose = my_application_dispose;
|
||||
@@ -188,12 +124,7 @@ MyApplication* my_application_new() {
|
||||
g_set_prgname(APPLICATION_ID);
|
||||
|
||||
return MY_APPLICATION(g_object_new(my_application_get_type(),
|
||||
<<<<<<< HEAD
|
||||
"application-id", APPLICATION_ID,
|
||||
"flags", G_APPLICATION_NON_UNIQUE,
|
||||
nullptr));
|
||||
=======
|
||||
"application-id", APPLICATION_ID, "flags",
|
||||
G_APPLICATION_NON_UNIQUE, nullptr));
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
}
|
||||
|
||||
@@ -3,14 +3,7 @@
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
<<<<<<< HEAD
|
||||
G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,
|
||||
=======
|
||||
G_DECLARE_FINAL_TYPE(MyApplication,
|
||||
my_application,
|
||||
MY,
|
||||
APPLICATION,
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
GtkApplication)
|
||||
|
||||
/**
|
||||
|
||||
@@ -5,13 +5,10 @@
|
||||
import FlutterMacOS
|
||||
import Foundation
|
||||
|
||||
<<<<<<< HEAD
|
||||
import flutter_local_notifications
|
||||
import shared_preferences_foundation
|
||||
|
||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin"))
|
||||
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
|
||||
=======
|
||||
|
||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
}
|
||||
|
||||
@@ -27,10 +27,6 @@
|
||||
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
|
||||
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
|
||||
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; };
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
@@ -68,11 +64,7 @@
|
||||
331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
|
||||
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
|
||||
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
|
||||
<<<<<<< HEAD
|
||||
33CC10ED2044A3C60003C045 /* flutter_application_1.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "flutter_application_1.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
=======
|
||||
33CC10ED2044A3C60003C045 /* recoleccion_residuos.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "recoleccion_residuos.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
|
||||
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||
@@ -84,10 +76,6 @@
|
||||
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
|
||||
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
|
||||
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = "<group>"; };
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
|
||||
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
@@ -104,10 +92,6 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */,
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -147,11 +131,7 @@
|
||||
33CC10EE2044A3C60003C045 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
<<<<<<< HEAD
|
||||
33CC10ED2044A3C60003C045 /* flutter_application_1.app */,
|
||||
=======
|
||||
33CC10ED2044A3C60003C045 /* recoleccion_residuos.app */,
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
331C80D5294CF71000263BE5 /* RunnerTests.xctest */,
|
||||
);
|
||||
name = Products;
|
||||
@@ -171,10 +151,6 @@
|
||||
33CEB47122A05771004F2AC0 /* Flutter */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */,
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,
|
||||
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
|
||||
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
|
||||
@@ -240,16 +216,8 @@
|
||||
33CC11202044C79F0003C045 /* PBXTargetDependency */,
|
||||
);
|
||||
name = Runner;
|
||||
<<<<<<< HEAD
|
||||
productName = Runner;
|
||||
productReference = 33CC10ED2044A3C60003C045 /* flutter_application_1.app */;
|
||||
=======
|
||||
packageProductDependencies = (
|
||||
78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */,
|
||||
);
|
||||
productName = Runner;
|
||||
productReference = 33CC10ED2044A3C60003C045 /* recoleccion_residuos.app */;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
@@ -292,12 +260,6 @@
|
||||
Base,
|
||||
);
|
||||
mainGroup = 33CC10E42044A3C60003C045;
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
packageReferences = (
|
||||
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */,
|
||||
);
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
productRefGroup = 33CC10EE2044A3C60003C045 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
@@ -423,17 +385,10 @@
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
MARKETING_VERSION = 1.0;
|
||||
<<<<<<< HEAD
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/flutter_application_1.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/flutter_application_1";
|
||||
=======
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos.RunnerTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/recoleccion_residuos.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/recoleccion_residuos";
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
@@ -444,17 +399,10 @@
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
MARKETING_VERSION = 1.0;
|
||||
<<<<<<< HEAD
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/flutter_application_1.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/flutter_application_1";
|
||||
=======
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos.RunnerTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/recoleccion_residuos.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/recoleccion_residuos";
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
@@ -465,17 +413,10 @@
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
MARKETING_VERSION = 1.0;
|
||||
<<<<<<< HEAD
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/flutter_application_1.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/flutter_application_1";
|
||||
=======
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos.RunnerTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/recoleccion_residuos.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/recoleccion_residuos";
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
};
|
||||
name = Profile;
|
||||
};
|
||||
@@ -520,11 +461,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
<<<<<<< HEAD
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
||||
=======
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = macosx;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
@@ -606,11 +543,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
<<<<<<< HEAD
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
||||
=======
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
@@ -660,11 +593,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
<<<<<<< HEAD
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
||||
=======
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = macosx;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
@@ -771,23 +700,6 @@
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
/* Begin XCLocalSwiftPackageReference section */
|
||||
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = {
|
||||
isa = XCLocalSwiftPackageReference;
|
||||
relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage;
|
||||
};
|
||||
/* End XCLocalSwiftPackageReference section */
|
||||
|
||||
/* Begin XCSwiftPackageProductDependency section */
|
||||
78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
productName = FlutterGeneratedPluginSwiftPackage;
|
||||
};
|
||||
/* End XCSwiftPackageProductDependency section */
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
};
|
||||
rootObject = 33CC10E52044A3C60003C045 /* Project object */;
|
||||
}
|
||||
|
||||
@@ -5,27 +5,6 @@
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
<PreActions>
|
||||
<ExecutionAction
|
||||
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
|
||||
<ActionContent
|
||||
title = "Run Prepare Flutter Framework Script"
|
||||
scriptText = ""$FLUTTER_ROOT"/packages/flutter_tools/bin/macos_assemble.sh prepare ">
|
||||
<EnvironmentBuildable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||
BuildableName = "recoleccion_residuos.app"
|
||||
BlueprintName = "Runner"
|
||||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
</EnvironmentBuildable>
|
||||
</ActionContent>
|
||||
</ExecutionAction>
|
||||
</PreActions>
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
@@ -36,11 +15,7 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||
<<<<<<< HEAD
|
||||
BuildableName = "flutter_application_1.app"
|
||||
=======
|
||||
BuildableName = "recoleccion_residuos.app"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
BlueprintName = "Runner"
|
||||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
@@ -56,11 +31,7 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||
<<<<<<< HEAD
|
||||
BuildableName = "flutter_application_1.app"
|
||||
=======
|
||||
BuildableName = "recoleccion_residuos.app"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
BlueprintName = "Runner"
|
||||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
@@ -88,21 +59,13 @@
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
enableGPUValidationMode = "1"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||
<<<<<<< HEAD
|
||||
BuildableName = "flutter_application_1.app"
|
||||
=======
|
||||
BuildableName = "recoleccion_residuos.app"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
BlueprintName = "Runner"
|
||||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
@@ -119,11 +82,7 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||
<<<<<<< HEAD
|
||||
BuildableName = "flutter_application_1.app"
|
||||
=======
|
||||
BuildableName = "recoleccion_residuos.app"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
BlueprintName = "Runner"
|
||||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
||||
@@ -5,17 +5,10 @@
|
||||
// 'flutter create' template.
|
||||
|
||||
// The application's name. By default this is also the title of the Flutter window.
|
||||
<<<<<<< HEAD
|
||||
PRODUCT_NAME = flutter_application_1
|
||||
|
||||
// The application's bundle identifier
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1
|
||||
=======
|
||||
PRODUCT_NAME = recoleccion_residuos
|
||||
|
||||
// The application's bundle identifier
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
// The copyright displayed in application information
|
||||
PRODUCT_COPYRIGHT = Copyright © 2026 com.example. All rights reserved.
|
||||
|
||||
343
pubspec.lock
343
pubspec.lock
@@ -1,11 +1,18 @@
|
||||
# Generated by pub
|
||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||
packages:
|
||||
args:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: args
|
||||
sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.7.0"
|
||||
async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
<<<<<<< HEAD
|
||||
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
@@ -18,81 +25,54 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.1.4"
|
||||
=======
|
||||
sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.13.1"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: boolean_selector
|
||||
<<<<<<< HEAD
|
||||
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
=======
|
||||
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
<<<<<<< HEAD
|
||||
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
=======
|
||||
sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.4.1"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
<<<<<<< HEAD
|
||||
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
=======
|
||||
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.2"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
<<<<<<< HEAD
|
||||
sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.19.0"
|
||||
=======
|
||||
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.19.1"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
cupertino_icons:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: cupertino_icons
|
||||
<<<<<<< HEAD
|
||||
sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.8"
|
||||
dbus:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: dbus
|
||||
sha256: d0c98dcd4f5169878b6cf8f6e0a52403a9dff371a3e2f019697accbf6f44a270
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.12"
|
||||
equatable:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -101,17 +81,10 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.8"
|
||||
=======
|
||||
sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.9"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
<<<<<<< HEAD
|
||||
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
@@ -132,18 +105,11 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.0.1"
|
||||
=======
|
||||
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.3"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
flutter:
|
||||
dependency: "direct main"
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
<<<<<<< HEAD
|
||||
flutter_bloc:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -152,29 +118,59 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.1.6"
|
||||
=======
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
flutter_lints:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_lints
|
||||
<<<<<<< HEAD
|
||||
sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.0.0"
|
||||
=======
|
||||
sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1"
|
||||
flutter_local_notifications:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_local_notifications
|
||||
sha256: "19ffb0a8bb7407875555e5e98d7343a633bb73707bae6c6a5f37c90014077875"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "19.5.0"
|
||||
flutter_local_notifications_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_local_notifications_linux
|
||||
sha256: e3c277b2daab8e36ac5a6820536668d07e83851aeeb79c446e525a70710770a5
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.0.0"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
flutter_local_notifications_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_local_notifications_platform_interface
|
||||
sha256: "277d25d960c15674ce78ca97f57d0bae2ee401c844b6ac80fcd972a9c99d09fe"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "9.1.0"
|
||||
flutter_local_notifications_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_local_notifications_windows
|
||||
sha256: "8d658f0d367c48bd420e7cf2d26655e2d1130147bca1eea917e576ca76668aaf"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.3"
|
||||
flutter_map:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_map
|
||||
sha256: "87cc8349b8fa5dccda5af50018c7374b6645334a0d680931c1fe11bce88fa5bb"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.2.1"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
<<<<<<< HEAD
|
||||
flutter_web_plugins:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
@@ -188,62 +184,86 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "13.2.5"
|
||||
=======
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
http:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: http
|
||||
sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.6.0"
|
||||
http_parser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: http_parser
|
||||
sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.1.2"
|
||||
intl:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: intl
|
||||
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.20.2"
|
||||
latlong2:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: latlong2
|
||||
sha256: "98227922caf49e6056f91b6c56945ea1c7b166f28ffcd5fb8e72fc0b453cc8fe"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.9.1"
|
||||
leak_tracker:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
<<<<<<< HEAD
|
||||
sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.7"
|
||||
=======
|
||||
sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "11.0.2"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
<<<<<<< HEAD
|
||||
sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.8"
|
||||
=======
|
||||
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.10"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_testing
|
||||
<<<<<<< HEAD
|
||||
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.1"
|
||||
=======
|
||||
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.2"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
lints:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: lints
|
||||
<<<<<<< HEAD
|
||||
sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.1.1"
|
||||
lists:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: lists
|
||||
sha256: "4ca5c19ae4350de036a7e996cdd1ee39c93ac0a2b840f4915459b7d0a7d4ab27"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.1"
|
||||
logger:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: logger
|
||||
sha256: "25aee487596a6257655a1e091ec2ae66bc30e7af663592cc3a27e6591e05035c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.7.0"
|
||||
logging:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -252,51 +272,38 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
=======
|
||||
sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.1.0"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
<<<<<<< HEAD
|
||||
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.12.16+1"
|
||||
=======
|
||||
sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.12.19"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: material_color_utilities
|
||||
<<<<<<< HEAD
|
||||
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.11.1"
|
||||
=======
|
||||
sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.13.0"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
<<<<<<< HEAD
|
||||
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.15.0"
|
||||
mgrs_dart:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: mgrs_dart
|
||||
sha256: fb89ae62f05fa0bb90f70c31fc870bcbcfd516c843fb554452ab3396f78586f7
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
nested:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -305,17 +312,10 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
=======
|
||||
sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.18.0"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
path:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path
|
||||
<<<<<<< HEAD
|
||||
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
@@ -344,6 +344,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.0"
|
||||
petitparser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: petitparser
|
||||
sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.0.2"
|
||||
platform:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -360,6 +368,22 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.8"
|
||||
polylabel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: polylabel
|
||||
sha256: "41b9099afb2aa6c1730bdd8a0fab1400d287694ec7615dd8516935fa3144214b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.1"
|
||||
proj4dart:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: proj4dart
|
||||
sha256: c8a659ac9b6864aa47c171e78d41bbe6f5e1d7bd790a5814249e6b68bc44324e
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
provider:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -424,12 +448,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.1"
|
||||
=======
|
||||
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.1"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
sky_engine:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
@@ -439,112 +457,86 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_span
|
||||
<<<<<<< HEAD
|
||||
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.10.0"
|
||||
=======
|
||||
sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.10.2"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
<<<<<<< HEAD
|
||||
sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.12.0"
|
||||
=======
|
||||
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.12.1"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
<<<<<<< HEAD
|
||||
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
=======
|
||||
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.4"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
string_scanner:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: string_scanner
|
||||
<<<<<<< HEAD
|
||||
sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
=======
|
||||
sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.4.1"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
<<<<<<< HEAD
|
||||
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
=======
|
||||
sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.2"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
<<<<<<< HEAD
|
||||
sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.3"
|
||||
=======
|
||||
sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e"
|
||||
timezone:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: timezone
|
||||
sha256: dd14a3b83cfd7cb19e7888f1cbc20f258b8d71b54c06f79ac585f14093a287d1
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.11"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
version: "0.10.1"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: typed_data
|
||||
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.4.0"
|
||||
unicode:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: unicode
|
||||
sha256: "0f69e46593d65245774d4f17125c6084d2c20b4e473a983f6e21b7d7762218f1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.3.1"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_math
|
||||
<<<<<<< HEAD
|
||||
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.4"
|
||||
=======
|
||||
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.0"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
vm_service:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
<<<<<<< HEAD
|
||||
sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
@@ -557,6 +549,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
wkt_parser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: wkt_parser
|
||||
sha256: "8a555fc60de3116c00aad67891bcab20f81a958e4219cc106e3c037aa3937f13"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
xdg_directories:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -565,15 +565,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
xml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: xml
|
||||
sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.5.0"
|
||||
sdks:
|
||||
dart: ">=3.6.0 <4.0.0"
|
||||
flutter: ">=3.27.0"
|
||||
=======
|
||||
sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "15.2.0"
|
||||
sdks:
|
||||
dart: ">=3.12.0 <4.0.0"
|
||||
flutter: ">=3.18.0-18.0.pre.54"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
37
pubspec.yaml
37
pubspec.yaml
@@ -1,16 +1,8 @@
|
||||
<<<<<<< HEAD
|
||||
name: flutter_application_1
|
||||
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
|
||||
=======
|
||||
name: recoleccion_residuos
|
||||
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
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
# The following defines the version and build number for your application.
|
||||
# A version number is three numbers separated by dots, like 1.2.43
|
||||
@@ -27,7 +19,6 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||
version: 1.0.0+1
|
||||
|
||||
environment:
|
||||
<<<<<<< HEAD
|
||||
sdk: ">=3.0.0 <4.0.0"
|
||||
|
||||
dependencies:
|
||||
@@ -38,23 +29,13 @@ dependencies:
|
||||
go_router: ^13.0.0
|
||||
equatable: ^2.0.5
|
||||
shared_preferences: ^2.2.0
|
||||
=======
|
||||
sdk: ^3.12.0
|
||||
flutter_map: ^6.2.1
|
||||
latlong2: ^0.9.1
|
||||
flutter_local_notifications: ^19.5.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.8
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
@@ -65,21 +46,13 @@ dev_dependencies:
|
||||
# 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.
|
||||
<<<<<<< HEAD
|
||||
flutter_lints: ^5.0.0
|
||||
=======
|
||||
flutter_lints: ^6.0.0
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
# 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 packages.
|
||||
flutter:
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
# 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.
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
<<<<<<< HEAD
|
||||
// Use a local test app to avoid depending on external package imports
|
||||
// which may not exist in the test environment.
|
||||
class MyApp extends StatefulWidget {
|
||||
@@ -37,9 +36,6 @@ class _MyAppState extends State<MyApp> {
|
||||
);
|
||||
}
|
||||
}
|
||||
=======
|
||||
import 'package:recoleccion_residuos/main.dart';
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
void main() {
|
||||
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
|
||||
|
||||
@@ -23,35 +23,16 @@
|
||||
<!-- iOS meta tags & icons -->
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<<<<<<< HEAD
|
||||
<meta name="apple-mobile-web-app-title" content="flutter_application_1">
|
||||
=======
|
||||
<meta name="apple-mobile-web-app-title" content="recoleccion_residuos">
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
<link rel="apple-touch-icon" href="icons/Icon-192.png">
|
||||
|
||||
<!-- Favicon -->
|
||||
<link rel="icon" type="image/png" href="favicon.png"/>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<title>flutter_application_1</title>
|
||||
<link rel="manifest" href="manifest.json">
|
||||
</head>
|
||||
<body>
|
||||
=======
|
||||
<title>recoleccion_residuos</title>
|
||||
<link rel="manifest" href="manifest.json">
|
||||
</head>
|
||||
<body>
|
||||
<!--
|
||||
You can customize the "flutter_bootstrap.js" script.
|
||||
This is useful to provide a custom configuration to the Flutter loader
|
||||
or to give the user feedback during the initialization process.
|
||||
|
||||
For more details:
|
||||
* https://docs.flutter.dev/platform-integration/web/initialization
|
||||
-->
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
<script src="flutter_bootstrap.js" async></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
{
|
||||
<<<<<<< HEAD
|
||||
"name": "flutter_application_1",
|
||||
"short_name": "flutter_application_1",
|
||||
=======
|
||||
"name": "recoleccion_residuos",
|
||||
"short_name": "recoleccion_residuos",
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"background_color": "#0175C2",
|
||||
|
||||
@@ -1,18 +1,10 @@
|
||||
# Project-level configuration.
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
<<<<<<< HEAD
|
||||
project(flutter_application_1 LANGUAGES CXX)
|
||||
|
||||
# The name of the executable created for the application. Change this to change
|
||||
# the on-disk name of your application.
|
||||
set(BINARY_NAME "flutter_application_1")
|
||||
=======
|
||||
project(recoleccion_residuos LANGUAGES CXX)
|
||||
|
||||
# The name of the executable created for the application. Change this to change
|
||||
# the on-disk name of your application.
|
||||
set(BINARY_NAME "recoleccion_residuos")
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
|
||||
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
|
||||
# versions of CMake.
|
||||
|
||||
@@ -6,6 +6,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
|
||||
)
|
||||
|
||||
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
||||
flutter_local_notifications_windows
|
||||
)
|
||||
|
||||
set(PLUGIN_BUNDLED_LIBRARIES)
|
||||
|
||||
@@ -90,21 +90,12 @@ BEGIN
|
||||
BLOCK "040904e4"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "com.example" "\0"
|
||||
<<<<<<< HEAD
|
||||
VALUE "FileDescription", "flutter_application_1" "\0"
|
||||
VALUE "FileVersion", VERSION_AS_STRING "\0"
|
||||
VALUE "InternalName", "flutter_application_1" "\0"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2026 com.example. All rights reserved." "\0"
|
||||
VALUE "OriginalFilename", "flutter_application_1.exe" "\0"
|
||||
VALUE "ProductName", "flutter_application_1" "\0"
|
||||
=======
|
||||
VALUE "FileDescription", "recoleccion_residuos" "\0"
|
||||
VALUE "FileVersion", VERSION_AS_STRING "\0"
|
||||
VALUE "InternalName", "recoleccion_residuos" "\0"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2026 com.example. All rights reserved." "\0"
|
||||
VALUE "OriginalFilename", "recoleccion_residuos.exe" "\0"
|
||||
VALUE "ProductName", "recoleccion_residuos" "\0"
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
VALUE "ProductVersion", VERSION_AS_STRING "\0"
|
||||
END
|
||||
END
|
||||
|
||||
@@ -27,11 +27,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
|
||||
FlutterWindow window(project);
|
||||
Win32Window::Point origin(10, 10);
|
||||
Win32Window::Size size(1280, 720);
|
||||
<<<<<<< HEAD
|
||||
if (!window.Create(L"flutter_application_1", origin, size)) {
|
||||
=======
|
||||
if (!window.Create(L"recoleccion_residuos", origin, size)) {
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
window.SetQuitOnClose(true);
|
||||
|
||||
@@ -45,7 +45,6 @@ std::string Utf8FromUtf16(const wchar_t* utf16_string) {
|
||||
if (utf16_string == nullptr) {
|
||||
return std::string();
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
unsigned int target_length = ::WideCharToMultiByte(
|
||||
CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,
|
||||
-1, nullptr, 0, nullptr, nullptr)
|
||||
@@ -53,19 +52,6 @@ std::string Utf8FromUtf16(const wchar_t* utf16_string) {
|
||||
int input_length = (int)wcslen(utf16_string);
|
||||
std::string utf8_string;
|
||||
if (target_length == 0 || target_length > utf8_string.max_size()) {
|
||||
=======
|
||||
// First, find the length of the string with a safe upper bound (CWE-126).
|
||||
// UNICODE_STRING_MAX_CHARS (32767) is the maximum length of a UNICODE_STRING.
|
||||
int input_length = static_cast<int>(wcsnlen(utf16_string, UNICODE_STRING_MAX_CHARS));
|
||||
// Now use that bounded length to determine the required buffer size.
|
||||
// When an explicit length is passed, WideCharToMultiByte does not include
|
||||
// the null terminator in its returned size.
|
||||
int target_length = ::WideCharToMultiByte(
|
||||
CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,
|
||||
input_length, nullptr, 0, nullptr, nullptr);
|
||||
std::string utf8_string;
|
||||
if (target_length == 0 || static_cast<size_t>(target_length) > utf8_string.max_size()) {
|
||||
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
|
||||
return utf8_string;
|
||||
}
|
||||
utf8_string.resize(target_length);
|
||||
|
||||
Reference in New Issue
Block a user