flutter app untuk unitstock
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

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