Business Login Flutter Apps
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 

75 rindas
2.0 KiB

  1. import 'dart:async';
  2. import 'dart:io';
  3. import 'package:location/location.dart';
  4. import 'Utils/utils.dart';
  5. import 'package:flutter/material.dart';
  6. import 'package:flutter/services.dart';
  7. import 'package:shared_preferences/shared_preferences.dart';
  8. import 'Utils/keys.dart';
  9. import 'package:http/http.dart';
  10. import 'Pages/home_page.dart';
  11. import 'Pages/login_page.dart';
  12. import 'Pages/unit_list.dart';
  13. import 'Pages/unit_details.dart';
  14. Client http = Client();
  15. SecurityContext clientContext = SecurityContext();
  16. Util util = Util();
  17. var prefs;
  18. Location location = Location();
  19. StreamSubscription? locationStream;
  20. LocationData? currentPosisiton;
  21. RouteObserver<PageRoute> routeObserver = RouteObserver<PageRoute>();
  22. registerCert()async{
  23. ByteData bytes = await rootBundle.load('lib/cert/isrgrootx1.pem');
  24. clientContext = SecurityContext()
  25. ..setTrustedCertificatesBytes(bytes.buffer.asUint8List());
  26. }
  27. Future preLoad() async{
  28. prefs = await SharedPreferences.getInstance();
  29. await prefs?.setString(Keys.hostAddress, "https://tbg.thamringroup.web.id/ords/tbs/unit/v1");
  30. await prefs?.setString(Keys.restTokenAddress, "https://tbg.thamringroup.web.id/ords/tbs/oauth/token");
  31. await registerCert();
  32. }
  33. void main()async{
  34. WidgetsFlutterBinding.ensureInitialized();
  35. await preLoad();
  36. SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
  37. .then((_) {
  38. runApp(const MyApp());
  39. });
  40. }
  41. class MyApp extends StatelessWidget {
  42. const MyApp({Key? key}) : super(key: key);
  43. @override
  44. Widget build(BuildContext context) {
  45. return MaterialApp(
  46. navigatorObservers: [routeObserver],
  47. title: 'Internal Unit Stocks',
  48. debugShowCheckedModeBanner: false,
  49. theme: ThemeData(
  50. primarySwatch: Colors.blue,
  51. ),
  52. home: (prefs.getBool(Keys.loggedIn)??false)?const HomePage():const LoginPage(),
  53. routes: {
  54. '/home': (context) => const HomePage(),
  55. '/units' : (context) => new UnitsPage(),
  56. '/login' :(context) => const LoginPage(),
  57. },
  58. );
  59. }
  60. }