flutter app untuk unitstock
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 

91 строка
2.9 KiB

  1. import 'dart:async';
  2. import 'dart:io';
  3. import 'package:flutter/material.dart';
  4. import 'package:flutter/services.dart';
  5. import 'package:http/http.dart';
  6. import 'package:unitstocks/Util/Prefs.dart';
  7. import 'package:unitstocks/login_page.dart';
  8. import 'home_page.dart';
  9. import 'stocking.dart';
  10. import 'unit_details.dart';
  11. import 'package:shared_preferences/shared_preferences.dart';
  12. import 'package:location/location.dart';
  13. import 'Util/Util.dart';
  14. import 'package:flutter_logs/flutter_logs.dart';
  15. SharedPreferences prefs;
  16. Location location = Location();
  17. StreamSubscription locationStream;
  18. LocationData currentPosisiton;
  19. Util util = new Util();
  20. Client http = new Client();
  21. SecurityContext clientContext;
  22. registerCert()async{
  23. ByteData bytes = await rootBundle.load('cert/isrgrootx1.pem');
  24. clientContext = new SecurityContext()
  25. ..setTrustedCertificatesBytes(bytes.buffer.asUint8List());
  26. }
  27. void main() async{
  28. // prefs = await SharedPreferences.getInstance();
  29. WidgetsFlutterBinding.ensureInitialized();
  30. SharedPreferences.getInstance().then((pref) async{
  31. prefs = pref;
  32. await prefs.setString(keyClass.hostAddress, "https://tbg.thamringroup.web.id/ords/tbs/unit/v1");
  33. await prefs.setString(keyClass.restTokenAddress, "https://tbg.thamringroup.web.id/ords/tbs/oauth/token");
  34. },
  35. onError: (error) {
  36. print("SharedPreferences ERROR = $error");
  37. });
  38. // if( prefs.getString(keyClass.hostAddress) ==null)
  39. await registerCert();
  40. // await FlutterLogs.initLogs(
  41. // logLevelsEnabled: [
  42. // LogLevel.INFO,
  43. // LogLevel.WARNING,
  44. // LogLevel.ERROR,
  45. // LogLevel.SEVERE
  46. // ],
  47. // timeStampFormat: TimeStampFormat.TIME_FORMAT_READABLE,
  48. // directoryStructure: DirectoryStructure.FOR_DATE,
  49. // logTypesEnabled: ["device","network","errors"],
  50. // logFileExtension: LogFileExtension.LOG,
  51. // logsWriteDirectoryName: "MyLogs",
  52. // logsExportDirectoryName: "MyLogs/Exported",
  53. // debugFileOperations: true,
  54. // isDebuggable: true);
  55. SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
  56. .then((_) {
  57. runApp(new MyApp());
  58. });
  59. }
  60. class MyApp extends StatelessWidget {
  61. @override
  62. Widget build(BuildContext context) {
  63. return MaterialApp(
  64. title: 'Unit Stock',
  65. theme: ThemeData(
  66. pageTransitionsTheme: PageTransitionsTheme(
  67. builders: {
  68. TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
  69. }
  70. ),
  71. primarySwatch: Colors.indigo,
  72. ),
  73. debugShowCheckedModeBanner: false,
  74. home: (prefs.getBool(keyClass.logged_in)??false)?HomePage(title:'Home Page'):LoginPage(),
  75. routes: {
  76. '/home': (context) => new HomePage(title:'Home Page'),
  77. '/stocking' : (context) => new Stocking(),
  78. '/unitdetails' : (context) => new UnitDetails(),
  79. '/login' :(context) => new LoginPage(),
  80. },
  81. );
  82. }
  83. }