title: Flutter FutureBuilder show Progress indicator
body: <p>I have a button which onpressed inserts something in DB and redirects user to another page. I am trying to implement FutureBuilder which should show <code>CircularProgressIndicator</code> until everything is done.</p>
  
  <p>This is my function:</p>
  
  <pre><code>Future&lt;bool&gt; insertPhoneNumber(String phoneNumber) async {
      String token = await getToken();
  
      if (token.isNotEmpty) {
        var body = jsonEncode({'token': token, 'userID': user.getUserID(), 'phoneNumber': phoneNumber});
  
        print(body.toString());
  
        var res = await http.post((baseUrl + "/insertPhoneNumber/" + user.getUserID()),
            body: body,
            headers: {
              "Accept": "application/json",
              "content-type": "application/json"
            });
  
        if (res.statusCode == 200) {
          print("Insert Phone Number is OK");
          notifyListeners();
          return true;
        } else {
          print("Insert Phone Number not OK");
          notifyListeners();
          return false;
        }
      } else {
        print("Insert Phone Number failed due to unexisting token");
      }
    }
  </code></pre>
  
  <p>and this is a button which triggers DB interaction:</p>
  
  <pre><code>RaisedButton(
                    color: Color.fromRGBO(105, 79, 150, 1),
                    onPressed: () {
                      var user = Provider.of&lt;UserRepository&gt;(context);
                      String completePhoneNumber = _selectedDialogCountry.phoneCode + phoneNumberController.text;
                      FutureBuilder(
                        future: user.insertPhoneNumber(completePhoneNumber),
                        builder: (BuildContext context, AsyncSnapshot snapshot) {
                          if (snapshot.connectionState != ConnectionState.done) {
                            return CircularProgressIndicator(
                                backgroundColor: Colors.blue);
                          } else {
                            return Dashboard();
                          }
                        },
                      );
                    },
                    textColor: Colors.white,
                    child: Text("SAVE"),
                  )
  </code></pre>
  
  <p>It updates DB but nothing else happens. There is no progress indicator nor redirection to <code>Dashboard</code>.</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>This is my full build method:</p>
  
  <pre><code>@override
    Widget build(BuildContext context) {
      return Scaffold(
        body: Container(
            padding: EdgeInsets.all(8.0),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: &lt;Widget&gt;[
                AutoSizeText(
                  'What is your phone number?',
                  style: TextStyle(fontSize: 30),
                  maxLines: 1,
                ),
                Row(
                  children: &lt;Widget&gt;[
                    SizedBox(
                      width: 9.0,
                      child: Icon(Icons.arrow_downward),
                    ),
                    SizedBox(width: 8.0),
                    SizedBox(
                        width: 120.0,
                        height: 65.0,
                        child: Card(
                          child: ListTile(
                            onTap: _openCountryPickerDialog,
                            title: _buildDialogItem(_selectedDialogCountry),
                          ),
                        )),
                    Expanded(
                      child: TextField(
                          autofocus: true,
                          keyboardType: TextInputType.number,
                          decoration:
                              InputDecoration(border: OutlineInputBorder())),
                    ),
                  ],
                ),
                SizedBox(
                  width: 100,
                  child: RaisedButton(
                    color: Color.fromRGBO(105, 79, 150, 1),
                    onPressed: () {
                      print("Test");
                    },
                    textColor: Colors.white,
                    child: Text("SAVE"),
                  ),
                )
              ],
            )),
      );
    }
  </code></pre>