AppLockToggleButton function

Widget AppLockToggleButton({
  1. String lockNotSetMessage = "Please enable mobile screen lock.",
  2. String errorTitle = "App Lock",
})

Implementation

Widget AppLockToggleButton({
  String lockNotSetMessage = "Please enable mobile screen lock.",
  String errorTitle = "App Lock",
}) {
  Preferences pref = Preferences();
  final LocalAuthentication auth = LocalAuthentication();

  return FutureBuilder(
      future: pref.init(),
      builder: (context, snapshot) {
        if (!snapshot.hasData || snapshot.hasError) {
          return const CircularProgressIndicator();
        }
        bool isAppLocked = pref.getAppLockStatus();
        return StatefulBuilder(builder: (context, setstate) {
          return CupertinoSwitch(
              value: isAppLocked,
              onChanged: (value) async {
                bool isScrennLockSupported =
                    await hasScreenLockPassword(auth: auth);

                setstate(() {
                  isAppLocked = (!isAppLocked && isScrennLockSupported);
                });
                await pref.saveAppLockStatus(appLockStatus: isAppLocked);
                if (!isScrennLockSupported) {
                  GNDialogs.showDialogOneButton(
                      message: lockNotSetMessage,
                      title: errorTitle,
                      yes: "OK",
                      callback: (value) {});
                }
              });
        });
      });
}