شائع شدہ سورس
سورس ZIP ڈاؤن لوڈ کریں
CH-J SM Mobile
ایپلیکیشن کی کسی مخصوص ریلیز کی ڈائریکٹریز اور فائلیں دیکھیں۔
CH-J / SM Mobile
175 فائلیں
sm-mobile-20261016T185235Z-8e93ecc1b59a
شامل کیا گیا: · بلڈ کیا گیا:
1
import 'dart:async';2
import 'package:flutter/material.dart';3
import 'core/app_controller.dart';4
import 'l10n/strings.dart';5
import 'services/blob_store.dart';6
import 'services/secure_store.dart';7
import 'services/local_files.dart';8
import 'ui/adaptive.dart';9
import 'ui/gates.dart';10
import 'ui/theme.dart';11
import 'ui/workspace.dart';13
void main() {14
WidgetsFlutterBinding.ensureInitialized();15
unawaited(purgeTransferCache().catchError((Object _) {}));16
final controller = AppController(DeviceStore.normal, blobs: FileBlobStore());17
runApp(SmMobileApp(controller));18
controller.initialize();19
}21
class SmMobileApp extends StatefulWidget {22
final AppController controller;23
const SmMobileApp(this.controller, {super.key});24
@override25
State<SmMobileApp> createState() => _SmMobileAppState();26
}28
class _SmMobileAppState extends State<SmMobileApp> {29
final navigator = GlobalKey<NavigatorState>();30
@override31
void initState() {32
super.initState();33
widget.controller.onLocked = () {34
unawaited(purgeTransferCache().catchError((Object _) {}));35
navigator.currentState?.popUntil((r) => r.isFirst);36
};37
}39
@override40
Widget build(BuildContext context) => ListenableBuilder(41
listenable: widget.controller,42
builder: (_, _) {43
final c = widget.controller;44
return MaterialApp(45
navigatorKey: navigator,46
title: 'SM Mobile',47
debugShowCheckedModeBanner: false,48
locale: c.locale,49
supportedLocales: AppLocalizations.supportedLocales,50
localizationsDelegates: AppLocalizations.localizationsDelegates,51
theme: buildTheme(Brightness.light),52
darkTheme: buildTheme(Brightness.dark),53
themeMode: c.theme,54
builder: (context, child) => Listener(55
onPointerDown: (_) => c.activity(),56
onPointerMove: (_) => c.activity(),57
// iOS and Android keep the keyboard open after a tap outside a58
// text field; a tap on empty space closes it. Taps on buttons,59
// fields and the terminal are won by their own recognizers.60
child: GestureDetector(61
behavior: HitTestBehavior.translucent,62
// Not an action for screen readers, only a touch convenience.63
excludeFromSemantics: true,64
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),65
child: MinimumCanvas(child: child!),66
),67
),68
home: !c.ready69
? const Scaffold(body: Center(child: CircularProgressIndicator()))70
: c.startupError != null71
? Builder(72
builder: (context) => Scaffold(73
body: SafeArea(74
child: Center(75
child: Padding(76
padding: const EdgeInsets.all(24),77
child: Text(context.tr(c.startupError!)),78
),79
),80
),81
),82
)83
: !c.accepted84
? Onboarding(c)85
: !c.vault.unlocked86
? VaultGate(c)87
: Workspace(c),88
);89
},90
);91
}SHA-256
6c9fcd28364fc9627b6a5e77537285ea51178af95216a64998215bee8d7f1993CH-J Proprietary Software License 1.14 · سورس CH-J Proprietary Software License 1.14 کے تحت فراہم کیا جاتا ہے۔ اس کی دستیابی لائسنس کی شرائط نہیں بدلتی اور نہ ہی اضافی حقوق دیتی ہے۔
آرکائیو کا SHA-256
46e427a43e87af091004f36145590bda8fe90086dfb0f631afeb5029fb0b5655