schedule_badge_updates 0.1.0 copy "schedule_badge_updates: ^0.1.0" to clipboard
schedule_badge_updates: ^0.1.0 copied to clipboard

This iOS plugin for Flutter allows you to schedule badge updates on your app icon.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:schedule_badge_updates/schedule_badge_updates.dart';

void main() => runApp(MyApp());

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

class _MyAppState extends State<MyApp> {
  String _badgeSupported = 'Not set';

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

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> initPlatformState() async {
    String badgeSupported;
    // Platform messages may fail, so we use a try/catch PlatformException.
    try {
      ScheduleBadgeUpdates.setBadge(6);

      // Badges: 6 -> 8 -> 66 -> none
      // 666 should never show

      // This should be shown
      print(await ScheduleBadgeUpdates.scheduleBadge(
          8, DateTime.now().add(Duration(seconds: 5))));
      // But this should be canceled
      String res = await ScheduleBadgeUpdates.scheduleBadge(
          666, DateTime.now().add(Duration(seconds: 7)));
      print(res);
      print(await ScheduleBadgeUpdates.unscheduleBadgeUpdates([res]));

      bool isBadge = await ScheduleBadgeUpdates.isBadgeSupported();
      if (!isBadge) {
        badgeSupported = 'Not supported';
      } else {
        badgeSupported = 'YASS!!!';
      }

      // This should show
      print(await ScheduleBadgeUpdates.scheduleBadge(
          66, DateTime.now().add(Duration(seconds: 10))));
      // This should be canceled
      print(await ScheduleBadgeUpdates.scheduleBadge(
          666, DateTime.now().add(Duration(seconds: 15))));
      // By this
      Timer(Duration(seconds: 12),
          () async => await ScheduleBadgeUpdates.unscheduleAllBadgeUpdates());
      // And eventually all disappears
      Timer(Duration(seconds: 20),
          () async => await ScheduleBadgeUpdates.clearBadge());
    } on PlatformException {
      badgeSupported = 'Failed to get platform version.';
    }

    // If the widget was removed from the tree while the asynchronous platform
    // message was in flight, we want to discard the reply rather than calling
    // setState to update our non-existent appearance.
    if (!mounted) return;

    setState(() {
      _badgeSupported = badgeSupported;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Text('Running on: $_badgeSupported\n'),
        ),
      ),
    );
  }
}
0
likes
40
pub points
0%
popularity

Publisher

unverified uploader

This iOS plugin for Flutter allows you to schedule badge updates on your app icon.

Homepage

License

MIT (LICENSE)

Dependencies

flutter

More

Packages that depend on schedule_badge_updates