anchor.diff:      });
     }
   
  +  void showDemoDialog<T>({BuildContext context, Widget child}) {
  +    showDialog<T>(
  +      context: context,
  +      builder: (BuildContext context) => child,
  +    ).then<void>((T value) {
  +      // The value passed to Navigator.pop() or null.
  +      if (value != null) {
  +        if (value == DialogDemoAction.connect) {
  +          prefs.setString('server', _serverAddress);
  +          Navigator.push(
  +              context,
  +              MaterialPageRoute(
  +                  builder: (BuildContext context) =>
  +                      CallSample(ip: _serverAddress)));
  +        }
  +      }
  +    });
  +  }
  +
  +  _showAddressDialog(context) {
  +    showDemoDialog<DialogDemoAction>(
  +        context: context,
  +        child: new AlertDialog(
  +            title: const Text('Enter server address:'),
  +            content: TextField(
  +              onChanged: (String text) {
  +                setState(() {
  +                  _serverAddress = text;
  +                });
  +              },
  +              decoration: InputDecoration(
  +                hintText: _serverAddress,
  +              ),
  +              textAlign: TextAlign.center,
  +            ),
  +            actions: <Widget>[
  +              new FlatButton(
  +                  child: const Text('CANCEL'),
  +                  onPressed: () {
  +                    Navigator.pop(context, DialogDemoAction.cancel);
  +                  }),
  +              new FlatButton(
  +                  child: const Text('CONNECT'),
  +                  onPressed: () {
  +                    Navigator.pop(context, DialogDemoAction.connect);
  +                  })
  +            ]));
  +  }
  +
     _initItems() {
       items = <RouteItem>[
         RouteItem(
  
positive.code: class MyApp extends StatefulWidget {
    @override
    _MyAppState createState() => new _MyAppState();
  }
  
  class _MyAppState extends State<MyApp> {
  
negative.code:           title: 'P2P Call Sample',
            subtitle: 'P2P Call Sample.',
            push: (BuildContext context) {
              _showAddressDialog(context);
            }),
      ];
    }
  