Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'package:flutter/material.dart';
- import 'dart:math' show Random;
- void main() {
- runApp(CPFGen());
- }
- class CPFGen extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- return MaterialApp(
- debugShowCheckedModeBanner: false,
- home: Scaffold(
- appBar: AppBar(
- title: Text(
- 'Gerador de CPF',
- ),
- ),
- body: GeneratorScreen(),
- ),
- );
- }
- }
- class GeneratorScreen extends StatelessWidget {
- final TextEditingController _textEditingController = TextEditingController();
- @override
- Widget build(BuildContext context) {
- return Center(
- child: IntrinsicWidth(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.stretch,
- children: <Widget>[
- TextField(
- enableInteractiveSelection: true,
- textAlign: TextAlign.center,
- showCursor: false,
- maxLines: 1,
- controller: _textEditingController,
- cursorColor: Theme.of(context).primaryColor,
- style: Theme.of(context).textTheme.subtitle1,
- decoration: InputDecoration(
- contentPadding: EdgeInsets.symmetric(horizontal: 10),
- filled: false,
- hintMaxLines: 1,
- hintText: 'Quantos CPFs?',
- hintStyle: Theme.of(context).textTheme.subtitle1,
- border: OutlineInputBorder(
- borderRadius: BorderRadius.all(Radius.circular(5.0)),
- ),
- ),
- onChanged: (input) {
- print(_textEditingController.text);
- },
- ),
- RaisedButton(
- child: Text(
- 'Gerar',
- style: TextStyle(fontSize: 14),
- ),
- onPressed: () {
- GeneratorAlgorithm generator = GeneratorAlgorithm();
- List<String> cpfs = List<String>.generate(
- int.parse(_textEditingController.text), (_) {
- return generator.generateCPF();
- });
- _textEditingController.clear();
- Navigator.push(
- context,
- MaterialPageRoute(
- builder: (context) {
- return Scaffold(
- appBar: AppBar(title: Text('Resultados')),
- body: ListView.builder(
- itemCount: cpfs.length,
- itemBuilder: (context, index) {
- return ListTile(title: Text(cpfs[index]));
- },
- ),
- );
- },
- ),
- );
- },
- ),
- ],
- ),
- ),
- );
- }
- }
- class GeneratorAlgorithm {
- String generateCPF() {
- final Random random = Random();
- List<int> buildCPF =
- List<int>.generate(9, (_) => random.nextInt(9), growable: true);
- for (int i = 0; i < 2; i++) {
- buildCPF.add(digit(buildCPF));
- }
- return buildString(buildCPF);
- }
- int digit(List<int> buildCPF) {
- int sum = 0;
- int index = buildCPF.length + 1;
- for (int i in buildCPF) {
- sum += i * index;
- index -= 1;
- }
- return verifySum(sum);
- }
- int verifySum(int sum) {
- return ((sum % 11) < 2) ? 0 : 11 - (sum % 11);
- }
- String buildString(List<int> buildCPF) {
- List<String> getNumbers = [];
- String formattedCPF = "";
- for (int i in buildCPF) {
- getNumbers.add(i.toString());
- }
- getNumbers.insert(3, ".");
- getNumbers.insert(7, ".");
- getNumbers.insert(11, "-");
- for (String i in getNumbers) {
- formattedCPF += i;
- }
- return formattedCPF;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement