master #1

Open
hack_25030248_eecb82 wants to merge 0 commits from master into main
40 changed files with 843 additions and 1174 deletions

7
.gitignore vendored
View File

@@ -27,18 +27,11 @@ migrate_working_dir/
**/doc/api/ **/doc/api/
**/ios/Flutter/.last_build_id **/ios/Flutter/.last_build_id
.dart_tool/ .dart_tool/
<<<<<<< HEAD
.flutter-plugins .flutter-plugins
=======
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
.flutter-plugins-dependencies .flutter-plugins-dependencies
.pub-cache/ .pub-cache/
.pub/ .pub/
/build/ /build/
<<<<<<< HEAD
=======
/coverage/
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
# Symbolication related # Symbolication related
app.*.symbols app.*.symbols

View File

@@ -4,11 +4,7 @@
# This file should be version controlled and should not be manually edited. # This file should be version controlled and should not be manually edited.
version: version:
<<<<<<< HEAD
revision: "d8a9f9a52e5af486f80d932e838ee93861ffd863" revision: "d8a9f9a52e5af486f80d932e838ee93861ffd863"
=======
revision: "559ffa3f75e7402d65a8def9c28389a9b2e6fe42"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
channel: "stable" channel: "stable"
project_type: app project_type: app
@@ -17,7 +13,6 @@ project_type: app
migration: migration:
platforms: platforms:
- platform: root - platform: root
<<<<<<< HEAD
create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
- platform: android - platform: android
@@ -38,28 +33,6 @@ migration:
- platform: windows - platform: windows
create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
base_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 # User provided section

View File

@@ -1,8 +1,4 @@
<<<<<<< HEAD
# flutter_application_1 # flutter_application_1
=======
# recoleccion_residuos
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
A new Flutter project. 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: 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) - [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) - [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 For help getting started with Flutter development, view the
[online documentation](https://docs.flutter.dev/), which offers tutorials, [online documentation](https://docs.flutter.dev/), which offers tutorials,

4
android/.gitignore vendored
View File

@@ -5,10 +5,6 @@ gradle-wrapper.jar
/gradlew.bat /gradlew.bat
/local.properties /local.properties
GeneratedPluginRegistrant.java GeneratedPluginRegistrant.java
<<<<<<< HEAD
=======
.cxx/
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
# Remember to never publicly share your keystore. # Remember to never publicly share your keystore.
# See https://flutter.dev/to/reference-keystore # See https://flutter.dev/to/reference-keystore

View File

@@ -6,29 +6,31 @@ plugins {
} }
android { android {
namespace = "com.example.flutter_application_1" namespace "com.example.flutter_application_1"
compileSdk = flutter.compileSdkVersion compileSdkVersion flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion ndkVersion flutter.ndkVersion
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8 // 📍 DEBE IR AQUÍ: Adentro de android, pero AFUERA de defaultConfig
targetCompatibility = JavaVersion.VERSION_1_8 coreLibraryDesugaringEnabled true
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
} }
kotlinOptions { kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8 jvmTarget = '1.8'
} }
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // ⚠️ AQUÍ ADENTRO NO DEBE IR EL DESUGARING
applicationId = "com.example.flutter_application_1" applicationId "com.example.flutter_application_1"
// You can update the following values to match your application needs. minSdkVersion flutter.minSdkVersion
// For more information, see: https://flutter.dev/to/review-gradle-config. targetSdkVersion flutter.targetSdkVersion
minSdk = flutter.minSdkVersion versionCode flutter.versionCode
targetSdk = flutter.targetSdkVersion versionName flutter.versionName
versionCode = flutter.versionCode
versionName = flutter.versionName
} }
buildTypes { buildTypes {
release { release {
@@ -37,8 +39,14 @@ android {
signingConfig = signingConfigs.debug signingConfig = signingConfigs.debug
} }
} }
}
flutter { flutter {
source = "../.." source = "../.."
} }
dependencies {
// 📍 AGREGA ESTA LÍNEA AL FINAL DE LAS DEPENDENCIAS:
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
}
}

View File

@@ -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 = "../.."
}

View File

@@ -1,10 +1,11 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <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 <application
<<<<<<< HEAD
android:label="flutter_application_1" android:label="flutter_application_1"
=======
android:label="recoleccion_residuos"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
android:name="${applicationName}" android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"> android:icon="@mipmap/ic_launcher">
<activity <activity
@@ -35,6 +36,7 @@
android:name="flutterEmbedding" android:name="flutterEmbedding"
android:value="2" /> android:value="2" />
</application> </application>
<!-- Required to query activities that can process text, see: <!-- Required to query activities that can process text, see:
https://developer.android.com/training/package-visibility and https://developer.android.com/training/package-visibility and
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT. https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.

View File

@@ -1,5 +0,0 @@
package com.example.recoleccion_residuos
import io.flutter.embedding.android.FlutterActivity
class MainActivity : FlutterActivity()

View File

@@ -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)
}

View File

@@ -1,12 +1,3 @@
<<<<<<< HEAD
org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=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

View File

@@ -2,8 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
<<<<<<< HEAD
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-all.zip
=======
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-all.zip
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902

View File

@@ -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
View File

View File

@@ -20,10 +20,7 @@
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1.0</string> <string>1.0</string>
<<<<<<< HEAD
<key>MinimumOSVersion</key> <key>MinimumOSVersion</key>
<string>12.0</string> <string>12.0</string>
=======
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
</dict> </dict>
</plist> </plist>

View File

@@ -11,11 +11,6 @@
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 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 */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
<<<<<<< HEAD
=======
78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */,
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@@ -93,10 +79,6 @@
9740EEB11CF90186004384FC /* Flutter */ = { 9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
<<<<<<< HEAD
=======
78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */,
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
9740EEB21CF90195004384FC /* Debug.xcconfig */, 9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
@@ -134,10 +116,6 @@
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
74858FAE1ED2DC5600515810 /* AppDelegate.swift */, 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
<<<<<<< HEAD
=======
7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */,
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
); );
path = Runner; path = Runner;
@@ -179,12 +157,6 @@
dependencies = ( dependencies = (
); );
name = Runner; name = Runner;
<<<<<<< HEAD
=======
packageProductDependencies = (
78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */,
);
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
productName = Runner; productName = Runner;
productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
productType = "com.apple.product-type.application"; productType = "com.apple.product-type.application";
@@ -218,12 +190,6 @@
Base, Base,
); );
mainGroup = 97C146E51CF9000F007C117D; mainGroup = 97C146E51CF9000F007C117D;
<<<<<<< HEAD
=======
packageReferences = (
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */,
);
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
productRefGroup = 97C146EF1CF9000F007C117D /* Products */; productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
projectDirPath = ""; projectDirPath = "";
projectRoot = ""; projectRoot = "";
@@ -304,10 +270,6 @@
files = ( files = (
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
<<<<<<< HEAD
=======
7884E8682EC3CC0700C636F2 /* SceneDelegate.swift in Sources */,
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@@ -384,11 +346,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
<<<<<<< HEAD
IPHONEOS_DEPLOYMENT_TARGET = 12.0; IPHONEOS_DEPLOYMENT_TARGET = 12.0;
=======
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;
@@ -410,11 +368,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
<<<<<<< HEAD
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1; PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1;
=======
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos;
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@@ -430,11 +384,7 @@
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
<<<<<<< HEAD
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests;
=======
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos.RunnerTests;
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -451,11 +401,7 @@
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
<<<<<<< HEAD
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests;
=======
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos.RunnerTests;
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
@@ -470,11 +416,7 @@
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
<<<<<<< HEAD
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests;
=======
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos.RunnerTests;
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
@@ -530,11 +472,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
<<<<<<< HEAD
IPHONEOS_DEPLOYMENT_TARGET = 12.0; IPHONEOS_DEPLOYMENT_TARGET = 12.0;
=======
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
MTL_ENABLE_DEBUG_INFO = YES; MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos; SDKROOT = iphoneos;
@@ -585,11 +523,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
<<<<<<< HEAD
IPHONEOS_DEPLOYMENT_TARGET = 12.0; IPHONEOS_DEPLOYMENT_TARGET = 12.0;
=======
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;
@@ -613,11 +547,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
<<<<<<< HEAD
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1; PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1;
=======
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos;
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -639,11 +569,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
<<<<<<< HEAD
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1; PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1;
=======
PRODUCT_BUNDLE_IDENTIFIER = com.example.recoleccionResiduos;
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@@ -685,23 +611,6 @@
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
/* End XCConfigurationList section */ /* 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 */; rootObject = 97C146E61CF9000F007C117D /* Project object */;
} }

View File

@@ -5,27 +5,6 @@
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"
buildImplicitDependencies = "YES"> buildImplicitDependencies = "YES">
<<<<<<< HEAD
=======
<PreActions>
<ExecutionAction
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
<ActionContent
title = "Run Prepare Flutter Framework Script"
scriptText = "/bin/sh &quot;$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh&quot; prepare&#10;">
<EnvironmentBuildable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</EnvironmentBuildable>
</ActionContent>
</ExecutionAction>
</PreActions>
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
<BuildActionEntries> <BuildActionEntries>
<BuildActionEntry <BuildActionEntry
buildForTesting = "YES" buildForTesting = "YES"
@@ -47,10 +26,6 @@
buildConfiguration = "Debug" buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
<<<<<<< HEAD
=======
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
shouldUseLaunchSchemeArgsEnv = "YES"> shouldUseLaunchSchemeArgsEnv = "YES">
<MacroExpansion> <MacroExpansion>
<BuildableReference <BuildableReference
@@ -79,19 +54,11 @@
buildConfiguration = "Debug" buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
<<<<<<< HEAD
=======
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
launchStyle = "0" launchStyle = "0"
useCustomWorkingDirectory = "NO" useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO" ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES" debugDocumentVersioning = "YES"
debugServiceExtension = "internal" debugServiceExtension = "internal"
<<<<<<< HEAD
=======
enableGPUValidationMode = "1"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
allowLocationSimulation = "YES"> allowLocationSimulation = "YES">
<BuildableProductRunnable <BuildableProductRunnable
runnableDebuggingMode = "0"> runnableDebuggingMode = "0">

View File

@@ -2,25 +2,12 @@ import Flutter
import UIKit import UIKit
@main @main
<<<<<<< HEAD
@objc class AppDelegate: FlutterAppDelegate { @objc class AppDelegate: FlutterAppDelegate {
=======
@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate {
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
override func application( override func application(
_ application: UIApplication, _ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool { ) -> Bool {
<<<<<<< HEAD
GeneratedPluginRegistrant.register(with: self) GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions) return super.application(application, didFinishLaunchingWithOptions: launchOptions)
} }
=======
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) {
GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry)
}
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
} }

View File

@@ -2,19 +2,10 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<<<<<<< HEAD
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string> <string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key> <key>CFBundleDisplayName</key>
<string>Flutter Application 1</string> <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> <key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string> <string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
@@ -22,11 +13,7 @@
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<<<<<<< HEAD
<string>flutter_application_1</string> <string>flutter_application_1</string>
=======
<string>recoleccion_residuos</string>
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
@@ -37,32 +24,6 @@
<string>$(FLUTTER_BUILD_NUMBER)</string> <string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key> <key>LSRequiresIPhoneOS</key>
<true/> <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> <key>UILaunchStoryboardName</key>
<string>LaunchScreen</string> <string>LaunchScreen</string>
<key>UIMainStoryboardFile</key> <key>UIMainStoryboardFile</key>
@@ -80,12 +41,9 @@
<string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<<<<<<< HEAD
<key>CADisableMinimumFrameDurationOnPhone</key> <key>CADisableMinimumFrameDurationOnPhone</key>
<true/> <true/>
<key>UIApplicationSupportsIndirectInputEvents</key> <key>UIApplicationSupportsIndirectInputEvents</key>
<true/> <true/>
=======
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
</dict> </dict>
</plist> </plist>

View File

@@ -1,6 +0,0 @@
import Flutter
import UIKit
class SceneDelegate: FlutterSceneDelegate {
}

View File

@@ -1,4 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'package:flutter_application_1/features/auth/presentation/screens/register_screen.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
@@ -26,8 +27,8 @@ GoRouter createRouter(AuthBloc authBloc) {
redirect: (BuildContext context, GoRouterState state) { redirect: (BuildContext context, GoRouterState state) {
final authState = authBloc.state; final authState = authBloc.state;
final isAuthenticated = authState is AuthAuthenticated; final isAuthenticated = authState is AuthAuthenticated;
final isCheckingSession = authState is AuthCheckingSession || final isCheckingSession =
authState is AuthInitial; authState is AuthCheckingSession || authState is AuthInitial;
final currentLocation = state.uri.path; final currentLocation = state.uri.path;
// Mientras se verifica la sesión, mostrar splash. // Mientras se verifica la sesión, mostrar splash.
@@ -62,6 +63,18 @@ GoRouter createRouter(AuthBloc authBloc) {
path: AppRoutes.home, path: AppRoutes.home,
builder: (context, state) => const HomeScreenPlaceholder(), 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
], ],
); );
} }

View 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
}
}

View File

@@ -7,15 +7,6 @@ import '../bloc/auth_event.dart';
import '../bloc/auth_state.dart'; import '../bloc/auth_state.dart';
import '../widgets/privacy_notice_card.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 { class LoginScreen extends StatefulWidget {
const LoginScreen({super.key}); const LoginScreen({super.key});
@@ -23,8 +14,7 @@ class LoginScreen extends StatefulWidget {
State<LoginScreen> createState() => _LoginScreenState(); State<LoginScreen> createState() => _LoginScreenState();
} }
class _LoginScreenState extends State<LoginScreen> class _LoginScreenState extends State<LoginScreen> with SingleTickerProviderStateMixin {
with SingleTickerProviderStateMixin {
final _formKey = GlobalKey<FormState>(); final _formKey = GlobalKey<FormState>();
final _identifierController = TextEditingController(); final _identifierController = TextEditingController();
final _passwordController = TextEditingController(); final _passwordController = TextEditingController();
@@ -96,316 +86,127 @@ class _LoginScreenState extends State<LoginScreen>
child: Scaffold( child: Scaffold(
backgroundColor: AppTheme.warmWhite, backgroundColor: AppTheme.warmWhite,
body: SafeArea( body: SafeArea(
child: CustomScrollView( child: Form(
slivers: [ key: _formKey,
SliverFillRemaining( child: CustomScrollView(
hasScrollBody: false, slivers: [
child: FadeTransition( SliverFillRemaining(
opacity: _fadeAnim, hasScrollBody: false,
child: SlideTransition( child: FadeTransition(
position: _slideAnim, opacity: _fadeAnim,
child: Padding( child: SlideTransition(
padding: const EdgeInsets.symmetric(horizontal: 28), position: _slideAnim,
child: Column( child: Padding(
crossAxisAlignment: CrossAxisAlignment.start, padding: const EdgeInsets.symmetric(horizontal: 28),
children: [ child: Column(
const SizedBox(height: 48), crossAxisAlignment: CrossAxisAlignment.stretch,
_buildHeader(), children: [
const SizedBox(height: 32), const SizedBox(height: 48),
const ScheduleWarningBanner(), _buildHeader(),
const SizedBox(height: 32), const SizedBox(height: 8),
_buildForm(context), Text(
const SizedBox(height: 24), 'Sistema Municipal de Recolección Residencial\nCelaya, Guanajuato',
const PrivacyNoticeCard(), textAlign: TextAlign.center,
const SizedBox(height: 32), style: TextStyle(
_buildDemoHint(), fontSize: 12, color: Colors.grey.shade600, height: 1.3),
const SizedBox(height: 24), ),
], 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() { // Métodos auxiliares creados como placeholders para evitar errores de compilación
return Column( Widget _buildHeader() => const Center(child: Text("WasteNotify", style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold)));
crossAxisAlignment: CrossAxisAlignment.start, Widget _buildDemoHint() => const Center(child: Text("Demo: ciudadano@ejemplo.com / password123", style: TextStyle(fontSize: 12)));
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',
),
),
);
}
} }

View 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)),
),
],
),
),
),
);
}
}

View File

@@ -4,17 +4,10 @@ project(runner LANGUAGES CXX)
# The name of the executable created for the application. Change this to change # The name of the executable created for the application. Change this to change
# the on-disk name of your application. # the on-disk name of your application.
<<<<<<< HEAD
set(BINARY_NAME "flutter_application_1") set(BINARY_NAME "flutter_application_1")
# The unique GTK application identifier for this application. See: # The unique GTK application identifier for this application. See:
# https://wiki.gnome.org/HowDoI/ChooseApplicationID # https://wiki.gnome.org/HowDoI/ChooseApplicationID
set(APPLICATION_ID "com.example.flutter_application_1") 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 # Explicitly opt in to modern CMake behaviors to avoid warnings with recent
# versions of CMake. # versions of CMake.

View File

@@ -14,14 +14,6 @@ struct _MyApplication {
G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) 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. // Implements GApplication::activate.
static void my_application_activate(GApplication* application) { static void my_application_activate(GApplication* application) {
MyApplication* self = MY_APPLICATION(application); MyApplication* self = MY_APPLICATION(application);
@@ -48,7 +40,6 @@ static void my_application_activate(GApplication* application) {
if (use_header_bar) { if (use_header_bar) {
GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
gtk_widget_show(GTK_WIDGET(header_bar)); gtk_widget_show(GTK_WIDGET(header_bar));
<<<<<<< HEAD
gtk_header_bar_set_title(header_bar, "flutter_application_1"); gtk_header_bar_set_title(header_bar, "flutter_application_1");
gtk_header_bar_set_show_close_button(header_bar, TRUE); gtk_header_bar_set_show_close_button(header_bar, TRUE);
gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); 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_widget_show(GTK_WIDGET(view));
gtk_container_add(GTK_CONTAINER(window), 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)); fl_register_plugins(FL_PLUGIN_REGISTRY(view));
gtk_widget_grab_focus(GTK_WIDGET(view)); gtk_widget_grab_focus(GTK_WIDGET(view));
} }
// Implements GApplication::local_command_line. // 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) {
=======
static gboolean my_application_local_command_line(GApplication* application,
gchar*** arguments,
int* exit_status) {
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
MyApplication* self = MY_APPLICATION(application); MyApplication* self = MY_APPLICATION(application);
// Strip out the first argument as it is the binary name. // Strip out the first argument as it is the binary name.
self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); self->dart_entrypoint_arguments = g_strdupv(*arguments + 1);
g_autoptr(GError) error = nullptr; g_autoptr(GError) error = nullptr;
if (!g_application_register(application, nullptr, &error)) { if (!g_application_register(application, nullptr, &error)) {
<<<<<<< HEAD
g_warning("Failed to register: %s", error->message); g_warning("Failed to register: %s", error->message);
*exit_status = 1; *exit_status = 1;
return TRUE; return TRUE;
=======
g_warning("Failed to register: %s", error->message);
*exit_status = 1;
return TRUE;
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
} }
g_application_activate(application); g_application_activate(application);
@@ -134,11 +83,7 @@ static gboolean my_application_local_command_line(GApplication* application,
// Implements GApplication::startup. // Implements GApplication::startup.
static void my_application_startup(GApplication* application) { static void my_application_startup(GApplication* application) {
<<<<<<< HEAD
//MyApplication* self = MY_APPLICATION(object); //MyApplication* self = MY_APPLICATION(object);
=======
// MyApplication* self = MY_APPLICATION(object);
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
// Perform any actions required at application startup. // Perform any actions required at application startup.
@@ -147,11 +92,7 @@ static void my_application_startup(GApplication* application) {
// Implements GApplication::shutdown. // Implements GApplication::shutdown.
static void my_application_shutdown(GApplication* application) { static void my_application_shutdown(GApplication* application) {
<<<<<<< HEAD
//MyApplication* self = MY_APPLICATION(object); //MyApplication* self = MY_APPLICATION(object);
=======
// MyApplication* self = MY_APPLICATION(object);
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
// Perform any actions required at application shutdown. // 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) { static void my_application_class_init(MyApplicationClass* klass) {
G_APPLICATION_CLASS(klass)->activate = my_application_activate; 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;
=======
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)->startup = my_application_startup;
G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown; G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown;
G_OBJECT_CLASS(klass)->dispose = my_application_dispose; G_OBJECT_CLASS(klass)->dispose = my_application_dispose;
@@ -188,12 +124,7 @@ MyApplication* my_application_new() {
g_set_prgname(APPLICATION_ID); g_set_prgname(APPLICATION_ID);
return MY_APPLICATION(g_object_new(my_application_get_type(), return MY_APPLICATION(g_object_new(my_application_get_type(),
<<<<<<< HEAD
"application-id", APPLICATION_ID, "application-id", APPLICATION_ID,
"flags", G_APPLICATION_NON_UNIQUE, "flags", G_APPLICATION_NON_UNIQUE,
nullptr)); nullptr));
=======
"application-id", APPLICATION_ID, "flags",
G_APPLICATION_NON_UNIQUE, nullptr));
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
} }

View File

@@ -3,14 +3,7 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
<<<<<<< HEAD
G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,
=======
G_DECLARE_FINAL_TYPE(MyApplication,
my_application,
MY,
APPLICATION,
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
GtkApplication) GtkApplication)
/** /**

View File

@@ -5,13 +5,10 @@
import FlutterMacOS import FlutterMacOS
import Foundation import Foundation
<<<<<<< HEAD import flutter_local_notifications
import shared_preferences_foundation import shared_preferences_foundation
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
=======
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
} }

View File

@@ -27,10 +27,6 @@
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; 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 */ /* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */ /* Begin PBXContainerItemProxy section */
@@ -68,11 +64,7 @@
331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; }; 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>"; }; 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>"; }; 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 /* 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 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>"; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
@@ -104,10 +92,6 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
<<<<<<< HEAD
=======
78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */,
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@@ -147,11 +131,7 @@
33CC10EE2044A3C60003C045 /* Products */ = { 33CC10EE2044A3C60003C045 /* Products */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
<<<<<<< HEAD
33CC10ED2044A3C60003C045 /* flutter_application_1.app */, 33CC10ED2044A3C60003C045 /* flutter_application_1.app */,
=======
33CC10ED2044A3C60003C045 /* recoleccion_residuos.app */,
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
331C80D5294CF71000263BE5 /* RunnerTests.xctest */, 331C80D5294CF71000263BE5 /* RunnerTests.xctest */,
); );
name = Products; name = Products;
@@ -171,10 +151,6 @@
33CEB47122A05771004F2AC0 /* Flutter */ = { 33CEB47122A05771004F2AC0 /* Flutter */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
<<<<<<< HEAD
=======
78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */,
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
@@ -240,16 +216,8 @@
33CC11202044C79F0003C045 /* PBXTargetDependency */, 33CC11202044C79F0003C045 /* PBXTargetDependency */,
); );
name = Runner; name = Runner;
<<<<<<< HEAD
productName = Runner; productName = Runner;
productReference = 33CC10ED2044A3C60003C045 /* flutter_application_1.app */; productReference = 33CC10ED2044A3C60003C045 /* flutter_application_1.app */;
=======
packageProductDependencies = (
78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */,
);
productName = Runner;
productReference = 33CC10ED2044A3C60003C045 /* recoleccion_residuos.app */;
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
productType = "com.apple.product-type.application"; productType = "com.apple.product-type.application";
}; };
/* End PBXNativeTarget section */ /* End PBXNativeTarget section */
@@ -292,12 +260,6 @@
Base, Base,
); );
mainGroup = 33CC10E42044A3C60003C045; mainGroup = 33CC10E42044A3C60003C045;
<<<<<<< HEAD
=======
packageReferences = (
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */,
);
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; productRefGroup = 33CC10EE2044A3C60003C045 /* Products */;
projectDirPath = ""; projectDirPath = "";
projectRoot = ""; projectRoot = "";
@@ -423,17 +385,10 @@
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
<<<<<<< HEAD
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/flutter_application_1.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/flutter_application_1"; 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; name = Debug;
}; };
@@ -444,17 +399,10 @@
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
<<<<<<< HEAD
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/flutter_application_1.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/flutter_application_1"; 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; name = Release;
}; };
@@ -465,17 +413,10 @@
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
<<<<<<< HEAD
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/flutter_application_1.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/flutter_application_1"; 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; name = Profile;
}; };
@@ -520,11 +461,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
<<<<<<< HEAD
MACOSX_DEPLOYMENT_TARGET = 10.14; MACOSX_DEPLOYMENT_TARGET = 10.14;
=======
MACOSX_DEPLOYMENT_TARGET = 10.15;
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx; SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule; SWIFT_COMPILATION_MODE = wholemodule;
@@ -606,11 +543,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
<<<<<<< HEAD
MACOSX_DEPLOYMENT_TARGET = 10.14; MACOSX_DEPLOYMENT_TARGET = 10.14;
=======
MACOSX_DEPLOYMENT_TARGET = 10.15;
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
MTL_ENABLE_DEBUG_INFO = YES; MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx; SDKROOT = macosx;
@@ -660,11 +593,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
<<<<<<< HEAD
MACOSX_DEPLOYMENT_TARGET = 10.14; MACOSX_DEPLOYMENT_TARGET = 10.14;
=======
MACOSX_DEPLOYMENT_TARGET = 10.15;
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx; SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule; SWIFT_COMPILATION_MODE = wholemodule;
@@ -771,23 +700,6 @@
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
/* End XCConfigurationList section */ /* 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 */; rootObject = 33CC10E52044A3C60003C045 /* Project object */;
} }

View File

@@ -5,27 +5,6 @@
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"
buildImplicitDependencies = "YES"> buildImplicitDependencies = "YES">
<<<<<<< HEAD
=======
<PreActions>
<ExecutionAction
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
<ActionContent
title = "Run Prepare Flutter Framework Script"
scriptText = "&quot;$FLUTTER_ROOT&quot;/packages/flutter_tools/bin/macos_assemble.sh prepare&#10;">
<EnvironmentBuildable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
BuildableName = "recoleccion_residuos.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</EnvironmentBuildable>
</ActionContent>
</ExecutionAction>
</PreActions>
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
<BuildActionEntries> <BuildActionEntries>
<BuildActionEntry <BuildActionEntry
buildForTesting = "YES" buildForTesting = "YES"
@@ -36,11 +15,7 @@
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045" BlueprintIdentifier = "33CC10EC2044A3C60003C045"
<<<<<<< HEAD
BuildableName = "flutter_application_1.app" BuildableName = "flutter_application_1.app"
=======
BuildableName = "recoleccion_residuos.app"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
BlueprintName = "Runner" BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj"> ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference> </BuildableReference>
@@ -56,11 +31,7 @@
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045" BlueprintIdentifier = "33CC10EC2044A3C60003C045"
<<<<<<< HEAD
BuildableName = "flutter_application_1.app" BuildableName = "flutter_application_1.app"
=======
BuildableName = "recoleccion_residuos.app"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
BlueprintName = "Runner" BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj"> ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference> </BuildableReference>
@@ -88,21 +59,13 @@
ignoresPersistentStateOnLaunch = "NO" ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES" debugDocumentVersioning = "YES"
debugServiceExtension = "internal" debugServiceExtension = "internal"
<<<<<<< HEAD
=======
enableGPUValidationMode = "1"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
allowLocationSimulation = "YES"> allowLocationSimulation = "YES">
<BuildableProductRunnable <BuildableProductRunnable
runnableDebuggingMode = "0"> runnableDebuggingMode = "0">
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045" BlueprintIdentifier = "33CC10EC2044A3C60003C045"
<<<<<<< HEAD
BuildableName = "flutter_application_1.app" BuildableName = "flutter_application_1.app"
=======
BuildableName = "recoleccion_residuos.app"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
BlueprintName = "Runner" BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj"> ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference> </BuildableReference>
@@ -119,11 +82,7 @@
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045" BlueprintIdentifier = "33CC10EC2044A3C60003C045"
<<<<<<< HEAD
BuildableName = "flutter_application_1.app" BuildableName = "flutter_application_1.app"
=======
BuildableName = "recoleccion_residuos.app"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
BlueprintName = "Runner" BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj"> ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference> </BuildableReference>

View File

@@ -5,17 +5,10 @@
// 'flutter create' template. // 'flutter create' template.
// The application's name. By default this is also the title of the Flutter window. // The application's name. By default this is also the title of the Flutter window.
<<<<<<< HEAD
PRODUCT_NAME = flutter_application_1 PRODUCT_NAME = flutter_application_1
// The application's bundle identifier // The application's bundle identifier
PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1 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 // The copyright displayed in application information
PRODUCT_COPYRIGHT = Copyright © 2026 com.example. All rights reserved. PRODUCT_COPYRIGHT = Copyright © 2026 com.example. All rights reserved.

View File

@@ -1,11 +1,18 @@
# Generated by pub # Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile # See https://dart.dev/tools/pub/glossary#lockfile
packages: packages:
args:
dependency: transitive
description:
name: args
sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
url: "https://pub.dev"
source: hosted
version: "2.7.0"
async: async:
dependency: transitive dependency: transitive
description: description:
name: async name: async
<<<<<<< HEAD
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
@@ -18,81 +25,54 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.1.4" version: "8.1.4"
=======
sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37
url: "https://pub.dev"
source: hosted
version: "2.13.1"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
<<<<<<< HEAD
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.1" version: "2.1.1"
=======
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
characters: characters:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
<<<<<<< HEAD
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.0" version: "1.3.0"
=======
sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b
url: "https://pub.dev"
source: hosted
version: "1.4.1"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
clock: clock:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
<<<<<<< HEAD
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.1.1"
=======
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
url: "https://pub.dev"
source: hosted
version: "1.1.2"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
collection: collection:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
<<<<<<< HEAD
sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.19.0" version: "1.19.0"
=======
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
url: "https://pub.dev"
source: hosted
version: "1.19.1"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
name: cupertino_icons name: cupertino_icons
<<<<<<< HEAD
sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.8" version: "1.0.8"
dbus:
dependency: transitive
description:
name: dbus
sha256: d0c98dcd4f5169878b6cf8f6e0a52403a9dff371a3e2f019697accbf6f44a270
url: "https://pub.dev"
source: hosted
version: "0.7.12"
equatable: equatable:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -101,17 +81,10 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.8" version: "2.0.8"
=======
sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd"
url: "https://pub.dev"
source: hosted
version: "1.0.9"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
fake_async: fake_async:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
<<<<<<< HEAD
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
@@ -132,18 +105,11 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.0.1" version: "7.0.1"
=======
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
url: "https://pub.dev"
source: hosted
version: "1.3.3"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
<<<<<<< HEAD
flutter_bloc: flutter_bloc:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -152,29 +118,59 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.1.6" version: "8.1.6"
=======
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
flutter_lints: flutter_lints:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: flutter_lints name: flutter_lints
<<<<<<< HEAD
sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.0.0" version: "5.0.0"
======= flutter_local_notifications:
sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" 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" url: "https://pub.dev"
source: hosted source: hosted
version: "6.0.0" 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: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
<<<<<<< HEAD
flutter_web_plugins: flutter_web_plugins:
dependency: transitive dependency: transitive
description: flutter description: flutter
@@ -188,62 +184,86 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "13.2.5" version: "13.2.5"
======= http:
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902 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: leak_tracker:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker name: leak_tracker
<<<<<<< HEAD
sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.0.7" version: "10.0.7"
=======
sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
url: "https://pub.dev"
source: hosted
version: "11.0.2"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
leak_tracker_flutter_testing: leak_tracker_flutter_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_flutter_testing name: leak_tracker_flutter_testing
<<<<<<< HEAD
sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.8" version: "3.0.8"
=======
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev"
source: hosted
version: "3.0.10"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
leak_tracker_testing: leak_tracker_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_testing name: leak_tracker_testing
<<<<<<< HEAD
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.1" version: "3.0.1"
=======
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
lints: lints:
dependency: transitive dependency: transitive
description: description:
name: lints name: lints
<<<<<<< HEAD
sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7 sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.1.1" 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: logging:
dependency: transitive dependency: transitive
description: description:
@@ -252,51 +272,38 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.0" version: "1.3.0"
=======
sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df"
url: "https://pub.dev"
source: hosted
version: "6.1.0"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
<<<<<<< HEAD
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.12.16+1" version: "0.12.16+1"
=======
sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861
url: "https://pub.dev"
source: hosted
version: "0.12.19"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
name: material_color_utilities name: material_color_utilities
<<<<<<< HEAD
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.11.1" version: "0.11.1"
=======
sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b"
url: "https://pub.dev"
source: hosted
version: "0.13.0"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
<<<<<<< HEAD
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.15.0" 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: nested:
dependency: transitive dependency: transitive
description: description:
@@ -305,17 +312,10 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
=======
sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349"
url: "https://pub.dev"
source: hosted
version: "1.18.0"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
path: path:
dependency: transitive dependency: transitive
description: description:
name: path name: path
<<<<<<< HEAD
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
@@ -344,6 +344,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.0" version: "2.3.0"
petitparser:
dependency: transitive
description:
name: petitparser
sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
url: "https://pub.dev"
source: hosted
version: "6.0.2"
platform: platform:
dependency: transitive dependency: transitive
description: description:
@@ -360,6 +368,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.8" 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: provider:
dependency: transitive dependency: transitive
description: description:
@@ -424,12 +448,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.4.1" version: "2.4.1"
=======
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
url: "https://pub.dev"
source: hosted
version: "1.9.1"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
@@ -439,112 +457,86 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: source_span name: source_span
<<<<<<< HEAD
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.10.0" version: "1.10.0"
=======
sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab"
url: "https://pub.dev"
source: hosted
version: "1.10.2"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
<<<<<<< HEAD
sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.12.0" version: "1.12.0"
=======
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
url: "https://pub.dev"
source: hosted
version: "1.12.1"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
<<<<<<< HEAD
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.2"
=======
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
string_scanner: string_scanner:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
<<<<<<< HEAD
sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.0" version: "1.3.0"
=======
sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
url: "https://pub.dev"
source: hosted
version: "1.4.1"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
<<<<<<< HEAD
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "1.2.1"
=======
sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
url: "https://pub.dev"
source: hosted
version: "1.2.2"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
<<<<<<< HEAD
sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.3" version: "0.7.3"
======= timezone:
sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e" dependency: transitive
description:
name: timezone
sha256: dd14a3b83cfd7cb19e7888f1cbc20f258b8d71b54c06f79ac585f14093a287d1
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.11" version: "0.10.1"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902 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: vector_math:
dependency: transitive dependency: transitive
description: description:
name: vector_math name: vector_math
<<<<<<< HEAD
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.4" version: "2.1.4"
=======
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
url: "https://pub.dev"
source: hosted
version: "2.2.0"
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
vm_service: vm_service:
dependency: transitive dependency: transitive
description: description:
name: vm_service name: vm_service
<<<<<<< HEAD
sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
@@ -557,6 +549,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" 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: xdg_directories:
dependency: transitive dependency: transitive
description: description:
@@ -565,15 +565,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
xml:
dependency: transitive
description:
name: xml
sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226
url: "https://pub.dev"
source: hosted
version: "6.5.0"
sdks: sdks:
dart: ">=3.6.0 <4.0.0" dart: ">=3.6.0 <4.0.0"
flutter: ">=3.27.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

View File

@@ -1,16 +1,8 @@
<<<<<<< HEAD
name: flutter_application_1 name: flutter_application_1
description: "A new Flutter project." description: "A new Flutter project."
# The following line prevents the package from being accidentally published to # The following line prevents the package from being accidentally published to
# pub.dev using `flutter pub publish`. This is preferred for private packages. # pub.dev using `flutter pub publish`. This is preferred for private packages.
publish_to: "none" # Remove this line if you wish to publish to pub.dev publish_to: "none" # Remove this line if you wish to publish to pub.dev
=======
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. # The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43 # 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 version: 1.0.0+1
environment: environment:
<<<<<<< HEAD
sdk: ">=3.0.0 <4.0.0" sdk: ">=3.0.0 <4.0.0"
dependencies: dependencies:
@@ -38,23 +29,13 @@ dependencies:
go_router: ^13.0.0 go_router: ^13.0.0
equatable: ^2.0.5 equatable: ^2.0.5
shared_preferences: ^2.2.0 shared_preferences: ^2.2.0
======= flutter_map: ^6.2.1
sdk: ^3.12.0 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: dev_dependencies:
flutter_test: flutter_test:
@@ -65,21 +46,13 @@ dev_dependencies:
# activated in the `analysis_options.yaml` file located at the root of your # activated in the `analysis_options.yaml` file located at the root of your
# package. See that file for information about deactivating specific lint # package. See that file for information about deactivating specific lint
# rules and activating additional ones. # rules and activating additional ones.
<<<<<<< HEAD
flutter_lints: ^5.0.0 flutter_lints: ^5.0.0
=======
flutter_lints: ^6.0.0
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
# For information on the generic Dart part of this file, see the # For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec # following page: https://dart.dev/tools/pub/pubspec
# The following section is specific to Flutter packages. # The following section is specific to Flutter packages.
flutter: flutter:
<<<<<<< HEAD
=======
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
# The following line ensures that the Material Icons font is # The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in # included with your application, so that you can use the icons in
# the material Icons class. # the material Icons class.

View File

@@ -8,7 +8,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
<<<<<<< HEAD
// Use a local test app to avoid depending on external package imports // Use a local test app to avoid depending on external package imports
// which may not exist in the test environment. // which may not exist in the test environment.
class MyApp extends StatefulWidget { class MyApp extends StatefulWidget {
@@ -37,9 +36,6 @@ class _MyAppState extends State<MyApp> {
); );
} }
} }
=======
import 'package:recoleccion_residuos/main.dart';
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
void main() { void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async { testWidgets('Counter increments smoke test', (WidgetTester tester) async {

View File

@@ -23,35 +23,16 @@
<!-- iOS meta tags & icons --> <!-- iOS meta tags & icons -->
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black"> <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="flutter_application_1">
=======
<meta name="apple-mobile-web-app-title" content="recoleccion_residuos">
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
<link rel="apple-touch-icon" href="icons/Icon-192.png"> <link rel="apple-touch-icon" href="icons/Icon-192.png">
<!-- Favicon --> <!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/> <link rel="icon" type="image/png" href="favicon.png"/>
<<<<<<< HEAD
<title>flutter_application_1</title> <title>flutter_application_1</title>
<link rel="manifest" href="manifest.json"> <link rel="manifest" href="manifest.json">
</head> </head>
<body> <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> <script src="flutter_bootstrap.js" async></script>
</body> </body>
</html> </html>

View File

@@ -1,11 +1,6 @@
{ {
<<<<<<< HEAD
"name": "flutter_application_1", "name": "flutter_application_1",
"short_name": "flutter_application_1", "short_name": "flutter_application_1",
=======
"name": "recoleccion_residuos",
"short_name": "recoleccion_residuos",
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
"start_url": ".", "start_url": ".",
"display": "standalone", "display": "standalone",
"background_color": "#0175C2", "background_color": "#0175C2",

View File

@@ -1,18 +1,10 @@
# Project-level configuration. # Project-level configuration.
cmake_minimum_required(VERSION 3.14) cmake_minimum_required(VERSION 3.14)
<<<<<<< HEAD
project(flutter_application_1 LANGUAGES CXX) project(flutter_application_1 LANGUAGES CXX)
# The name of the executable created for the application. Change this to change # The name of the executable created for the application. Change this to change
# the on-disk name of your application. # the on-disk name of your application.
set(BINARY_NAME "flutter_application_1") 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 # Explicitly opt in to modern CMake behaviors to avoid warnings with recent
# versions of CMake. # versions of CMake.

View File

@@ -6,6 +6,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
) )
list(APPEND FLUTTER_FFI_PLUGIN_LIST list(APPEND FLUTTER_FFI_PLUGIN_LIST
flutter_local_notifications_windows
) )
set(PLUGIN_BUNDLED_LIBRARIES) set(PLUGIN_BUNDLED_LIBRARIES)

View File

@@ -90,21 +90,12 @@ BEGIN
BLOCK "040904e4" BLOCK "040904e4"
BEGIN BEGIN
VALUE "CompanyName", "com.example" "\0" VALUE "CompanyName", "com.example" "\0"
<<<<<<< HEAD
VALUE "FileDescription", "flutter_application_1" "\0" VALUE "FileDescription", "flutter_application_1" "\0"
VALUE "FileVersion", VERSION_AS_STRING "\0" VALUE "FileVersion", VERSION_AS_STRING "\0"
VALUE "InternalName", "flutter_application_1" "\0" VALUE "InternalName", "flutter_application_1" "\0"
VALUE "LegalCopyright", "Copyright (C) 2026 com.example. All rights reserved." "\0" VALUE "LegalCopyright", "Copyright (C) 2026 com.example. All rights reserved." "\0"
VALUE "OriginalFilename", "flutter_application_1.exe" "\0" VALUE "OriginalFilename", "flutter_application_1.exe" "\0"
VALUE "ProductName", "flutter_application_1" "\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" VALUE "ProductVersion", VERSION_AS_STRING "\0"
END END
END END

View File

@@ -27,11 +27,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
FlutterWindow window(project); FlutterWindow window(project);
Win32Window::Point origin(10, 10); Win32Window::Point origin(10, 10);
Win32Window::Size size(1280, 720); Win32Window::Size size(1280, 720);
<<<<<<< HEAD
if (!window.Create(L"flutter_application_1", origin, size)) { if (!window.Create(L"flutter_application_1", origin, size)) {
=======
if (!window.Create(L"recoleccion_residuos", origin, size)) {
>>>>>>> ffb5bdb346bb7ba0556931b52a489d47eca0d902
return EXIT_FAILURE; return EXIT_FAILURE;
} }
window.SetQuitOnClose(true); window.SetQuitOnClose(true);

View File

@@ -45,7 +45,6 @@ std::string Utf8FromUtf16(const wchar_t* utf16_string) {
if (utf16_string == nullptr) { if (utf16_string == nullptr) {
return std::string(); return std::string();
} }
<<<<<<< HEAD
unsigned int target_length = ::WideCharToMultiByte( unsigned int target_length = ::WideCharToMultiByte(
CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,
-1, nullptr, 0, nullptr, nullptr) -1, nullptr, 0, nullptr, nullptr)
@@ -53,19 +52,6 @@ std::string Utf8FromUtf16(const wchar_t* utf16_string) {
int input_length = (int)wcslen(utf16_string); int input_length = (int)wcslen(utf16_string);
std::string utf8_string; std::string utf8_string;
if (target_length == 0 || target_length > utf8_string.max_size()) { 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; return utf8_string;
} }
utf8_string.resize(target_length); utf8_string.resize(target_length);