account_picker_plus 0.0.3 copy "account_picker_plus: ^0.0.3" to clipboard
account_picker_plus: ^0.0.3 copied to clipboard

PlatformAndroid

A account picker using get email and phone number saved on device without requiring extra permission.

example/lib/main.dart

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

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

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

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return const MaterialApp(home: AccountPicker());
  }
}

class AccountPicker extends StatefulWidget {
  const AccountPicker({Key? key}) : super(key: key);

  @override
  State<AccountPicker> createState() => _AccountPickerState();
}

class _AccountPickerState extends State<AccountPicker> {
  String phoneNumber1 = '';
  List<String> email1 = [];
  String selectEmail = '';

  Future<void> getEmailId(context) async {
    List<String>? email;
    try {
      email = (await AccountPickerPlus.emailHint()).cast<String>();
      if (email.isEmpty) {
        ScaffoldMessenger.of(context).showSnackBar(
            const SnackBar(content: Text('No Email For Your Device..!')));
      } else {
        _settingModalBottomSheet(context);
      }
    } on PlatformException {
      email = [];
    }
    if (!mounted) return;
    setState(() {
      email1 = email!;
    });
  }

  Future<void> getPhoneNo() async {
    String phoneNumber;
    try {
      phoneNumber =
          await AccountPickerPlus.phoneHint() ?? 'Unknown platform version';
    } on PlatformException {
      phoneNumber = 'Failed to get platform version.';
    }
    if (!mounted) return;
    setState(() {
      phoneNumber1 = phoneNumber;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Plugin example app'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            MaterialButton(
              color: Colors.blue,
              onPressed: () {
                getPhoneNo();
              },
              child: const Text("PhoneNo"),
            ),
            Text('$phoneNumber1\n'),
            MaterialButton(
              color: Colors.blue,
              onPressed: () {
                getEmailId(context);
              },
              child: const Text("Email"),
            ),
            Text(selectEmail),
          ],
        ),
      ),
    );
  }

  _settingModalBottomSheet(BuildContext context) {
    showModalBottomSheet(
        context: context,
        builder: (BuildContext bc) {
          return Container(
            height: MediaQuery.of(context).size.height / 3,
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(10),
            ),
            child: ListView.builder(
                itemCount: email1.length,
                itemBuilder: (_, index) {
                  return Padding(
                    padding: const EdgeInsets.all(8),
                    child: Column(
                      children: [
                        ListTile(
                          leading: const Icon(Icons.alternate_email_rounded),
                          title: Text(email1[index].toString()),
                          onTap: () => {
                            Navigator.pop(context),
                            setState(() {
                              selectEmail = email1[index];
                            }),
                          },
                        ),
                        const Divider()
                      ],
                    ),
                  );
                }),
          );
        });
  }
}
1
likes
150
pub points
27%
popularity

Publisher

unverified uploader

A account picker using get email and phone number saved on device without requiring extra permission.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on account_picker_plus