Skip to content

Instantly share code, notes, and snippets.

View utkarsh-UK's full-sized avatar
🏠
Working from home

Utkarsh utkarsh-UK

🏠
Working from home
View GitHub Profile
@utkarsh-UK
utkarsh-UK / home_screen.dart
Created April 25, 2020 05:40
Showing overlays in a StreamBuilder and removing them on a button onPressed and Navigating to next screen
import 'dart:convert';
import 'package:firebase_database/firebase_database.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../utilities/constants.dart';
import '../widgets/order_map.dart';
class HomeScreen extends StatefulWidget {
import 'package:cloud_firestore/cloud_firestore.dart';
class MockFirestore extends Mock implements FirebaseFirestore {}
class MockCollectionReference extends Mock implements CollectionReference {}
class MockDocumentReference extends Mock implements DocumentReference {}
class MockDocumentSnapshot extends Mock implements DocumentSnapshot {}
import 'package:cloud_firestore/cloud_firestore.dart';
class MockFirestore extends Mock implements FirebaseFirestore {}
class MockCollectionReference extends Mock implements CollectionReference {}
class MockDocumentReference extends Mock implements DocumentReference {}
class MockDocumentSnapshot extends Mock implements DocumentSnapshot {}
import 'package:cloud_firestore/cloud_firestore.dart';
class MockFirestore extends Mock implements FirebaseFirestore {}
class MockCollectionReference extends Mock implements CollectionReference {}
class MockDocumentReference extends Mock implements DocumentReference {}
class MockDocumentSnapshot extends Mock implements DocumentSnapshot {}
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
cupertino_icons: ^0.1.3
#caching
hive: ^1.4.4
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Hive.initFlutter();
runApp(MyApp());
}
Future<void> saveEventToHive() async {
try {
var box = Hive.openBox('first_box');
box.put('event', 'Cache User');
var event = box.get('event')
box.close();
} on Exception catch (e) {
throw CacheException(message: e.toString());
Future<void> saveUserToken(String token) async {
try {
//BOX_NAME is any string key for you box name.
final secureKey = Hive.generateSecureKey();
final encryptedBox = await Hive.openBox(BOX_NAME, encryptionKey: secureKey);
await encryptedBox.put('token', token);
//SECURE_STORAGE_KEY is any string key.
await secureStorage.write(
key: SECURE_STORAGE_KEY,
Future<String> retrieveUserToken() async {
try {
final secureKey = await secureStorage.read(key: SECURE_STORAGE_KEY);
List<int> encryptionKey = (json.decode(secureKey) as List<dynamic>).cast<int>();
final encryptedBox = await hive.openBox(BOX_NAME, encryptionKey: encryptionKey);
String token = encryptedBox.get('token');
encryptedBox.close();
return token;
class CacheUserModel {
final String email;
final String name;
final String phone;
final String role;