keep_screen_on 1.0.0 copy "keep_screen_on: ^1.0.0" to clipboard
keep_screen_on: ^1.0.0 copied to clipboard

outdated

This plugin disables automatic screen off and prevents the screen from turning off.

example/lib/main.dart

import 'dart:async';

import 'package:flutter/material.dart';

import 'package:keep_screen_on/keep_screen_on.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {

  bool _isKeepScreenOn = false;
  DateTime _changeAt;

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('KeepScreenOn Plugin Example App'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            children: [
              ListView(
                shrinkWrap: true,
                children: [
                  ListTile(
                    title: Text('Keep screen on'),
                    subtitle: Text(_isKeepScreenOn.toString()),
                  ),
                  ListTile(
                    title: Text('Change date and time'),
                    subtitle: Text(_changeAt.toString()),
                  ),
                  ListTile(
                    title: Text('Elapsed time'),
                    subtitle: ElapsedTimeText(_changeAt),
                  )
                ],
              ),

              ButtonBar(
                alignment: MainAxisAlignment.center,
                children: [
                  RaisedButton.icon(
                    icon: Icon(Icons.arrow_upward),
                    label: Text('Turn on'),
                    onPressed: () {
                      KeepScreenOn.turnOn(true).then((value) async {
                        final isOn = await KeepScreenOn.isOn;
                        setState(() {
                          _isKeepScreenOn = isOn;
                          _changeAt = DateTime.now();
                        });
                      });
                    },
                  ),

                  RaisedButton.icon(
                    icon: Icon(Icons.arrow_downward),
                    label: Text('Turn off'),
                    onPressed: () {
                      KeepScreenOn.turnOn(false).then((value) async {
                        final isOn = await KeepScreenOn.isOn;
                        setState(() {
                          _isKeepScreenOn = isOn;
                          _changeAt = DateTime.now();
                        });
                      });
                    },
                  ),
                ],
              ),
            ],
          ),
        ),
      ),
    );
  }
}

class ElapsedTimeText extends StatefulWidget {
  final DateTime startAt;

  ElapsedTimeText(this.startAt);

  @override
  _ElapsedTimeTextState createState() => _ElapsedTimeTextState();
}

class _ElapsedTimeTextState extends State<ElapsedTimeText> {

  Timer _timer;
  String _elapsedText;

  @override
  void initState() {
    super.initState();

    _timer = Timer.periodic(const Duration(seconds: 1), updateElapsed);
  }

  @override
  void dispose() {
    _timer?.cancel();

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Text(_elapsedText ?? '');
  }

  void updateElapsed(Timer _timer) {
    if (widget.startAt == null) {
      return;
    }

    final elapsed = DateTime.now().difference(widget.startAt);

    setState(() {
      _elapsedText = elapsed.inHours.toString()
          + ':' + formatTwoDigits(elapsed.inMinutes.remainder(60))
          + ':' + formatTwoDigits(elapsed.inSeconds.remainder(60));
    });
  }

  static String formatTwoDigits(int num) {
    return num.toString().padLeft(2, '0');
  }
}
35
likes
40
pub points
95%
popularity

Publisher

verified publishercraftsoft.dev

This plugin disables automatic screen off and prevents the screen from turning off.

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

flutter, keep_screen_on_platform_interface

More

Packages that depend on keep_screen_on