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

outdated

Account manager for Flutter

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:accountmanager/accountmanager.dart';


class HomeWidget extends StatelessWidget {
  static const kAccountType = 'com.contedevel.account';

  Future<String> fetchName() async {
    String name;
    final permission = await PermissionHandler().checkPermissionStatus(PermissionGroup.contacts);
    if (permission == PermissionStatus.unknown || permission == PermissionStatus.denied) {
      final permissions = await PermissionHandler().requestPermissions([PermissionGroup.contacts]);
      if (permissions[PermissionGroup.contacts] != PermissionStatus.granted) {
        name = null;
      }
    } else if (permission != PermissionStatus.granted) {
      name = null;
    } else {
      try {
        var accounts = await AccountManager.getAccounts();
        for (Account account in accounts) {
          if (account.accountType == kAccountType) {
            await AccountManager.removeAccount(account);
          }
        }
        var account = new Account('User 007', kAccountType);
        if (await AccountManager.addAccount(account)) {
          var token = new AccessToken('Bearer', 'Blah-Blah code');
          await AccountManager.setAccessToken(account, token);
          accounts = await AccountManager.getAccounts();
          for (Account account in accounts) {
            if (account.accountType == kAccountType) {
              token = await AccountManager.getAccessToken(account,
                  token.tokenType);
              name = account.name + ' - ' + token.token;
              break;
            }
          }
        }
      } catch(e, s) {
        print(e);
        print(s);
      }
    }
    return name;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: const Text('Account manager'),
        ),
        body: Center(
          child: FutureBuilder<String>(
            future: fetchName(),
            builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
              String text = 'Loading...';
              if (snapshot.connectionState == ConnectionState.done) {
                if (snapshot.hasData && snapshot.data != null) {
                  text = snapshot.data;
                } else {
                  text = 'Failed';
                }
              }
              return Text(text);
            },
          ),
        )
    );
  }
}

void main() => runApp(MaterialApp(
  title: 'Account manager',
  home: HomeWidget(),
));
12
likes
0
points
64
downloads

Publisher

unverified uploader

Weekly Downloads

Account manager for Flutter

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on accountmanager

Packages that implement accountmanager