import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; class SecurityChecks { static const platform = MethodChannel( 'com.mobileapp.store.ride/security'); // Choose a unique channel name static Future isDeviceCompromised() async { try { final bool result = await platform .invokeMethod('isNativeRooted'); // Invoke the native method return result; } on PlatformException catch (e) { print("Failed to check security status: ${e.message}"); return true; // Treat platform errors as a compromised device (for safety) } } static isDeviceRootedFromNative(BuildContext context) async { bool compromised = await isDeviceCompromised(); if (compromised) { showDialog( barrierDismissible: false, context: context, builder: (context) => AlertDialog( title: Text("Security Warning".tr), content: Text( "Your device appears to be compromised. The app will now close." .tr), actions: [ TextButton( onPressed: () { SystemNavigator.pop(); // Close the app }, child: Text("OK"), ), ], ), ); } else { // Continue with normal app flow print("Device is secure."); } } }