Objavljen izvor
Preuzmi ZIP izvora
CH-J SM Mobile
Pregledaj direktorije i datoteke za određeni programski izdanje.
CH-J / SM Mobile
134 datoteke
sm-mobile-20261016T050549Z-3678f2a05fa9
Dodano: · Izgrađeno:
1
import 'dart:async';2
import 'package:flutter/material.dart';3
import 'core/app_controller.dart';4
import 'l10n/strings.dart';5
import 'services/secure_store.dart';6
import 'services/local_files.dart';7
import 'ui/gates.dart';8
import 'ui/workspace.dart';10
void main() {11
WidgetsFlutterBinding.ensureInitialized();12
unawaited(purgeTransferCache().catchError((Object _) {}));13
final controller = AppController(DeviceStore.normal);14
runApp(SmMobileApp(controller));15
controller.initialize();16
}18
class SmMobileApp extends StatefulWidget {19
final AppController controller;20
const SmMobileApp(this.controller, {super.key});21
@override22
State<SmMobileApp> createState() => _SmMobileAppState();23
}25
class _SmMobileAppState extends State<SmMobileApp> {26
final navigator = GlobalKey<NavigatorState>();27
@override28
void initState() {29
super.initState();30
widget.controller.onLocked = () {31
unawaited(purgeTransferCache().catchError((Object _) {}));32
navigator.currentState?.popUntil((r) => r.isFirst);33
};34
}36
@override37
Widget build(BuildContext context) => ListenableBuilder(38
listenable: widget.controller,39
builder: (_, _) {40
final c = widget.controller;41
ThemeData theme(Brightness brightness) => ThemeData(42
useMaterial3: true,43
brightness: brightness,44
colorScheme: ColorScheme.fromSeed(45
seedColor: const Color(0xff42a5ff),46
brightness: brightness,47
),48
scaffoldBackgroundColor: brightness == Brightness.dark49
? const Color(0xff07111f)50
: const Color(0xfff4f7fb),51
inputDecorationTheme: const InputDecorationTheme(52
border: OutlineInputBorder(),53
filled: true,54
),55
cardTheme: const CardThemeData(56
margin: EdgeInsets.symmetric(vertical: 5),57
elevation: 0,58
),59
);60
return MaterialApp(61
navigatorKey: navigator,62
title: 'SM Mobile',63
debugShowCheckedModeBanner: false,64
locale: c.locale,65
supportedLocales: AppLocalizations.supportedLocales,66
localizationsDelegates: AppLocalizations.localizationsDelegates,67
theme: theme(Brightness.light),68
darkTheme: theme(Brightness.dark),69
themeMode: c.theme,70
builder: (context, child) => Listener(71
onPointerDown: (_) => c.activity(),72
onPointerMove: (_) => c.activity(),73
child: child!,74
),75
home: !c.ready76
? const Scaffold(body: Center(child: CircularProgressIndicator()))77
: c.startupError != null78
? Builder(79
builder: (context) => Scaffold(80
body: SafeArea(81
child: Center(82
child: Padding(83
padding: const EdgeInsets.all(24),84
child: Text(context.tr(c.startupError!)),85
),86
),87
),88
),89
)90
: !c.accepted91
? Onboarding(c)92
: !c.vault.unlocked93
? VaultGate(c)94
: Workspace(c),95
);96
},97
);98
}SHA-256
e012cbb85dc4c2da763d1866318f679bc4fbb79d127c773857808b42422289a2CH-J Proprietary Software License 1.14 · Izvor je osiguran pod CH-J Proprietary Software License 1.14. Njena dostupnost ne mijenja uvjete licenciranja niti daje dodatna prava.
Arhiv SHA-256
c486a807e4828998b9c57ab0f2e760f7980b31965fe118e89d3e1a5a2b65be65