65 lines
1.6 KiB
Dart
65 lines
1.6 KiB
Dart
//import 'package:MakerBook/secure_screen/screenshot_guard.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:screen_protector/screen_protector.dart';
|
|
import 'pages/home_page.dart';
|
|
|
|
Future<void> main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
|
|
// Android → FLAG_SECURE
|
|
// iOS → blur no app switcher + bloqueio de screen recording
|
|
await ScreenProtector.preventScreenshotOn();
|
|
await ScreenProtector.protectDataLeakageOn();
|
|
|
|
runApp(const MyApp());
|
|
}
|
|
|
|
class MyApp extends StatefulWidget {
|
|
const MyApp({super.key});
|
|
|
|
@override
|
|
State<MyApp> createState() => _MyAppState();
|
|
}
|
|
|
|
class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
WidgetsBinding.instance.addObserver(this);
|
|
|
|
}
|
|
|
|
@override
|
|
void dispose() {
|
|
WidgetsBinding.instance.removeObserver(this);
|
|
super.dispose();
|
|
}
|
|
|
|
@override
|
|
void didChangeAppLifecycleState(AppLifecycleState state) async {
|
|
// iOS: protege quando vai para background / app switcher
|
|
if (state == AppLifecycleState.paused ||
|
|
state == AppLifecycleState.inactive) {
|
|
await ScreenProtector.protectDataLeakageOn();
|
|
}
|
|
|
|
// remove blur ao voltar
|
|
if (state == AppLifecycleState.resumed) {
|
|
await ScreenProtector.protectDataLeakageOff();
|
|
}
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MaterialApp(
|
|
debugShowCheckedModeBanner: false,
|
|
title: 'Maker Book',
|
|
theme: ThemeData(
|
|
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
|
|
useMaterial3: true,
|
|
),
|
|
home: const HomePage(),
|
|
);
|
|
}
|
|
}
|