Skip to content
Snippets Groups Projects
Select Git revision
  • demo-praesentation
  • main default
2 results

getStreetNumber.dart

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    getStreetNumber.dart 7.28 KiB
    // ignore_for_file: prefer_const_literals_to_create_immutables, prefer_const_constructors, sort_child_properties_last, must_be_immutable, use_key_in_widget_constructors, avoid_unnecessary_containers, deprecated_member_use
    
    import 'dart:convert';
    import 'package:flutter/material.dart';
    import 'package:flutter_typeahead/flutter_typeahead.dart';
    import 'package:http/http.dart' as http;
    import '../config/config.dart';
    
    class GetStreetNumber extends StatefulWidget {
      String currentAddress;
      GetStreetNumber(this.currentAddress);
    
      @override
      State<GetStreetNumber> createState() => _GetStreetNumberState();
    }
    
    class _GetStreetNumberState extends State<GetStreetNumber> {
      Config config = Config();
      TextEditingController textFieldController = TextEditingController();
      List<String> suggestions = [];
    
      Future<List<String>> fetchLocation(String query) async {
        query = widget.currentAddress + query;
        final response = await http.get(
          Uri.parse(
            'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=$query&radius=500&key=${config.GOOGLE_API}',
          ),
        );
        var jsonData = jsonDecode(response.body);
        suggestions = [];
        for (int i = 0; i < jsonData['predictions'][i].length; i++) {
          suggestions.add(jsonData['predictions'][i]['description'].toString());
        }
        return suggestions;
      }
    
      void _sendDataBack(BuildContext context) {
        Navigator.pop(context, textFieldController.text);
      }
    
      void _skip(BuildContext context) {
        Navigator.pop(context, widget.currentAddress);
      }
    
      void _back(BuildContext context) {
        Navigator.pop(context, textFieldController.text);
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            backgroundColor: Color.fromRGBO(9, 89, 95, 1),
            title: Text(
              'House Number',
              style: TextStyle(
                color: Theme.of(context).accentColor,
                fontSize: 22,
              ),
            ),
            leading: IconButton(
              iconSize: 26,
              icon: Icon(
                Icons.arrow_back_ios_rounded,
                color: Theme.of(context).accentColor,
              ),
              onPressed: () => _back(context),
            ),
          ),
          body: Container(