From 339e256eacba4dc40424c0c3feb5ccfc1b1474b8 Mon Sep 17 00:00:00 2001 From: Reginaldo Date: Fri, 23 Jun 2023 16:12:45 -0300 Subject: [PATCH] =?UTF-8?q?inserido=20o=20shared.dart=20para=20manter=20o?= =?UTF-8?q?=20usu=C3=A1rio=20logado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/componentes/drawer_custom.dart | 12 +- lib/servicos/shared_preferences/shared.dart | 17 +++ lib/telas/tela_login.dart | 29 +++- lib/telas/tela_splash.dart | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 2 + pubspec.lock | 142 ++++++++++++++++++ pubspec.yaml | 1 + 7 files changed, 195 insertions(+), 9 deletions(-) create mode 100644 lib/servicos/shared_preferences/shared.dart diff --git a/lib/componentes/drawer_custom.dart b/lib/componentes/drawer_custom.dart index c2c48a5..cb85441 100644 --- a/lib/componentes/drawer_custom.dart +++ b/lib/componentes/drawer_custom.dart @@ -14,6 +14,7 @@ import 'package:rkm_educa_app/telas/tela_perfil.dart'; import 'package:rkm_educa_app/utils/cores.dart'; import 'package:rkm_educa_app/componentes/text_custom.dart'; import 'package:rkm_educa_app/utils/dimensoes.dart'; +import '../servicos/shared_preferences/shared.dart'; import 'item_drawer.dart'; class DrawerCustom extends StatelessWidget { @@ -118,10 +119,13 @@ class DrawerCustom extends StatelessWidget { child: IconButton( icon: Icon(LineIcons.alternateSignOut,size: 30), onPressed: (){ - Navigator.pushReplacement( - context, - MaterialPageRoute(builder: (context) => TelaLogin()), - ); + final PrefService _prefService = PrefService(); + _prefService.removeCacheLogin().then((value){ + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => TelaLogin()), + ); + }); }, ), ), diff --git a/lib/servicos/shared_preferences/shared.dart b/lib/servicos/shared_preferences/shared.dart new file mode 100644 index 0000000..99d1b19 --- /dev/null +++ b/lib/servicos/shared_preferences/shared.dart @@ -0,0 +1,17 @@ +import 'package:shared_preferences/shared_preferences.dart'; + +class PrefService{ + Future createCacheLogin(String cpf, String senha)async{ + SharedPreferences preferences = await SharedPreferences.getInstance(); + preferences.setStringList('login', [cpf,senha]); + } + Future readCacheLogin()async{ + SharedPreferences preferences = await SharedPreferences.getInstance(); + final List? login = preferences.getStringList('login'); + return login; + } + Future removeCacheLogin()async{ + SharedPreferences preferences = await SharedPreferences.getInstance(); + preferences.remove('login'); + } +} \ No newline at end of file diff --git a/lib/telas/tela_login.dart b/lib/telas/tela_login.dart index 45ad19a..00d97d0 100644 --- a/lib/telas/tela_login.dart +++ b/lib/telas/tela_login.dart @@ -6,6 +6,7 @@ import 'package:rkm_educa_app/Telas/tela_situacao_escolar.dart'; import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; import 'package:rkm_educa_app/telas/tela_seleciona_filho.dart'; import 'package:rkm_educa_app/utils/dimensoes.dart'; +import '../servicos/shared_preferences/shared.dart'; import '../utils/cores.dart'; import '../componentes/buttom_custom.dart'; import '../componentes/input_text.dart'; @@ -34,7 +35,7 @@ class _TelaLoginState extends State { setState(() { loading = true; }); - conectAPI(); + conectAPI(inputLogin.text.toUpperCase(),inputSenha.text.toUpperCase()); }else{ showSnackBar(context, 'Preencha sua senha', Colors.red); } @@ -43,8 +44,8 @@ class _TelaLoginState extends State { } } - conectAPI()async{ - final url = 'http://192.168.18.2:8000/loginpais?CPF=${inputLogin.text.toUpperCase()}'; + conectAPI(String cpf, String senha)async{ + final url = 'http://192.168.18.2:8000/loginpais?CPF=$cpf'; print(url); final response = await http.get(Uri.parse(url)); var map = json.decode(response.body); @@ -55,12 +56,15 @@ class _TelaLoginState extends State { }); showSnackBar(context, 'Login não cadastrado e/ou senha incorreta', Colors.red); }else{ - if(map['CPF']==inputLogin.text.toUpperCase() && map['SENHA'].toString().toUpperCase()==inputSenha.text.toUpperCase()){ + if(map['CPF']==cpf && map['SENHA'].toString().toUpperCase()==senha){ setState(() { status = 'CARREGANDO ESTUDANTE(S) ...'; }); showSnackBar(context, 'Acesso validado', Colors.green); - buscaFilhos(map['NOME'],map['PARENTESCO'],map['CIDADE']); + final PrefService _prefService = PrefService(); + _prefService.createCacheLogin(map['CPF'], map['SENHA']).then((value){ + buscaFilhos(map['NOME'],map['PARENTESCO'],map['CIDADE']); + }); }else{ setState(() { loading = false; @@ -114,6 +118,21 @@ class _TelaLoginState extends State { } } + @override + void initState() { + super.initState(); + final PrefService _prefService = PrefService(); + _prefService.readCacheLogin().then((login){ + if(login!=null){ + setState(() { + loading = true; + }); + print(login); + conectAPI(login[0], login[1].toString().toUpperCase()); + } + }); + } + @override Widget build(BuildContext context) { return Scaffold( diff --git a/lib/telas/tela_splash.dart b/lib/telas/tela_splash.dart index dfb415f..a22d40d 100644 --- a/lib/telas/tela_splash.dart +++ b/lib/telas/tela_splash.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:rkm_educa_app/telas/tela_login.dart'; import 'package:rkm_educa_app/utils/cores.dart'; +import '../servicos/shared_preferences/shared.dart'; import '../utils/dimensoes.dart'; class TelaSplash extends StatefulWidget { diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index cccf817..724bb2a 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,6 +5,8 @@ import FlutterMacOS import Foundation +import shared_preferences_foundation func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index c9c32cc..1dd8ecb 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -105,6 +105,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99 + url: "https://pub.dev" + source: hosted + version: "2.0.2" + file: + dependency: transitive + description: + name: file + sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + url: "https://pub.dev" + source: hosted + version: "6.1.4" flutter: dependency: "direct main" description: flutter @@ -136,6 +152,11 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" gainer_crypto: dependency: "direct main" description: @@ -224,6 +245,46 @@ packages: url: "https://pub.dev" source: hosted version: "1.8.3" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: ffbb8cc9ed2c9ec0e4b7a541e56fd79b138e8f47d2fb86815f15358a349b3b57 + url: "https://pub.dev" + source: hosted + version: "2.1.11" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec" + url: "https://pub.dev" + source: hosted + version: "2.0.6" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: "1cb68ba4cd3a795033de62ba1b7b4564dace301f952de6bfb3cd91b202b6ee96" + url: "https://pub.dev" + source: hosted + version: "2.1.7" + platform: + dependency: transitive + description: + name: platform + sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc" + url: "https://pub.dev" + source: hosted + version: "2.1.4" pointycastle: dependency: transitive description: @@ -232,6 +293,70 @@ packages: url: "https://pub.dev" source: hosted version: "3.7.3" + process: + dependency: transitive + description: + name: process + sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + url: "https://pub.dev" + source: hosted + version: "4.2.4" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: "396f85b8afc6865182610c0a2fc470853d56499f75f7499e2a73a9f0539d23d0" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "6478c6bbbecfe9aced34c483171e90d7c078f5883558b30ec3163cf18402c749" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: e014107bb79d6d3297196f4f2d0db54b5d1f85b8ea8ff63b8e8b391a02700feb + url: "https://pub.dev" + source: hosted + version: "2.2.2" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "9d387433ca65717bbf1be88f4d5bb18f10508917a8fa2fb02e0fd0d7479a9afa" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: fb5cf25c0235df2d0640ac1b1174f6466bd311f621574997ac59018a6664548d + url: "https://pub.dev" + source: hosted + version: "2.2.0" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: "74083203a8eae241e0de4a0d597dbedab3b8fef5563f33cf3c12d7e93c655ca5" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "5e588e2efef56916a3b229c3bfe81e6a525665a454519ca51dbcc4236a274173" + url: "https://pub.dev" + source: hosted + version: "2.2.0" sky_engine: dependency: transitive description: flutter @@ -317,5 +442,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + win32: + dependency: transitive + description: + name: win32 + sha256: "1414f27dd781737e51afa9711f2ac2ace6ab4498ee98e20863fa5505aa00c58c" + url: "https://pub.dev" + source: hosted + version: "5.0.4" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1 + url: "https://pub.dev" + source: hosted + version: "1.0.0" sdks: dart: ">=3.0.0 <4.0.0" + flutter: ">=3.3.0" diff --git a/pubspec.yaml b/pubspec.yaml index b2c0a9f..8c1109f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -18,6 +18,7 @@ dependencies: intl: syncfusion_flutter_charts: ^21.2.9 brasil_fields: + shared_preferences: ^2.1.2 flutter_localizations: sdk: flutter