adding Contact list button to phone textformfield in client form

This commit is contained in:
Patrik Schwartz 2020-10-25 17:25:40 +01:00
parent ffd6fc2c83
commit 3af8e99fd5
3 changed files with 67 additions and 29 deletions

View File

@ -1,3 +1,4 @@
import 'package:contact_picker/contact_picker.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
@ -108,6 +109,8 @@ class ClientEditDetailsState extends State<ClientEditDetails> {
final state = viewModel.state; final state = viewModel.state;
final client = viewModel.client; final client = viewModel.client;
final ContactPicker _contactPicker = ContactPicker();
return ListView( return ListView(
shrinkWrap: true, shrinkWrap: true,
children: <Widget>[ children: <Widget>[
@ -150,11 +153,38 @@ class ClientEditDetailsState extends State<ClientEditDetails> {
keyboardType: TextInputType.url, keyboardType: TextInputType.url,
onSavePressed: viewModel.onSavePressed, onSavePressed: viewModel.onSavePressed,
), ),
DecoratedFormField( Stack(
label: localization.phone, children: <Widget>[
controller: _phoneController, DecoratedFormField(
keyboardType: TextInputType.phone, label: localization.phone,
onSavePressed: viewModel.onSavePressed, controller: _phoneController,
keyboardType: TextInputType.phone,
onSavePressed: viewModel.onSavePressed,
),
Container(
margin: EdgeInsets.fromLTRB(10, 10, 0, 0),
alignment: Alignment.centerRight,
child: IconButton(
color: Theme.of(context).cardColor,
icon: Icon(
Icons.person,
color: Colors.grey,
),
onPressed: () async {
Contact contact = await _contactPicker.selectContact();
setState(() {
if(contact != null)
{
_phoneController.text = contact.phoneNumber.number;
}
else {
_phoneController.text = "";
}
});
},
),
),
],
), ),
CustomField( CustomField(
controller: _custom1Controller, controller: _custom1Controller,

View File

@ -35,14 +35,14 @@ packages:
name: async name: async
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.5.0-nullsafety" version: "2.5.0-nullsafety.1"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0-nullsafety" version: "2.1.0-nullsafety.1"
build: build:
dependency: transitive dependency: transitive
description: description:
@ -119,14 +119,14 @@ packages:
name: characters name: characters
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0-nullsafety.2" version: "1.1.0-nullsafety.3"
charcode: charcode:
dependency: transitive dependency: transitive
description: description:
name: charcode name: charcode
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0-nullsafety" version: "1.2.0-nullsafety.1"
charts_common: charts_common:
dependency: transitive dependency: transitive
description: description:
@ -161,7 +161,7 @@ packages:
name: clock name: clock
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0-nullsafety" version: "1.1.0-nullsafety.1"
code_builder: code_builder:
dependency: transitive dependency: transitive
description: description:
@ -175,7 +175,14 @@ packages:
name: collection name: collection
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.15.0-nullsafety.2" version: "1.15.0-nullsafety.3"
contact_picker:
dependency: "direct main"
description:
name: contact_picker
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.2"
convert: convert:
dependency: transitive dependency: transitive
description: description:
@ -252,7 +259,7 @@ packages:
name: fake_async name: fake_async
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0-nullsafety" version: "1.2.0-nullsafety.1"
faker: faker:
dependency: "direct dev" dependency: "direct dev"
description: description:
@ -273,7 +280,7 @@ packages:
name: file name: file
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.0.0-nullsafety.1" version: "6.0.0-nullsafety.2"
firebase: firebase:
dependency: transitive dependency: transitive
description: description:
@ -592,7 +599,7 @@ packages:
name: matcher name: matcher
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.12.10-nullsafety" version: "0.12.10-nullsafety.1"
material_design_icons_flutter: material_design_icons_flutter:
dependency: "direct main" dependency: "direct main"
description: description:
@ -613,7 +620,7 @@ packages:
name: meta name: meta
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.0-nullsafety.2" version: "1.3.0-nullsafety.4"
mime: mime:
dependency: transitive dependency: transitive
description: description:
@ -690,7 +697,7 @@ packages:
name: path name: path
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.0-nullsafety" version: "1.8.0-nullsafety.1"
path_provider: path_provider:
dependency: "direct main" dependency: "direct main"
description: description:
@ -746,7 +753,7 @@ packages:
name: platform name: platform
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.0-nullsafety.1" version: "3.0.0-nullsafety.2"
plugin_platform_interface: plugin_platform_interface:
dependency: transitive dependency: transitive
description: description:
@ -767,7 +774,7 @@ packages:
name: process name: process
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.0.0-nullsafety.1" version: "4.0.0-nullsafety.2"
pub_semver: pub_semver:
dependency: transitive dependency: transitive
description: description:
@ -933,7 +940,7 @@ packages:
name: source_span name: source_span
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.0-nullsafety" version: "1.8.0-nullsafety.2"
sqflite: sqflite:
dependency: transitive dependency: transitive
description: description:
@ -954,14 +961,14 @@ packages:
name: stack_trace name: stack_trace
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.10.0-nullsafety" version: "1.10.0-nullsafety.2"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0-nullsafety" version: "2.1.0-nullsafety.1"
stream_transform: stream_transform:
dependency: transitive dependency: transitive
description: description:
@ -975,7 +982,7 @@ packages:
name: string_scanner name: string_scanner
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0-nullsafety" version: "1.1.0-nullsafety.1"
sync_http: sync_http:
dependency: transitive dependency: transitive
description: description:
@ -996,28 +1003,28 @@ packages:
name: term_glyph name: term_glyph
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0-nullsafety" version: "1.2.0-nullsafety.1"
test: test:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: test name: test
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.16.0-nullsafety.4" version: "1.16.0-nullsafety.5"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.2.19-nullsafety" version: "0.2.19-nullsafety.2"
test_core: test_core:
dependency: transitive dependency: transitive
description: description:
name: test_core name: test_core
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.3.12-nullsafety.4" version: "0.3.12-nullsafety.5"
timeago: timeago:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1038,7 +1045,7 @@ packages:
name: typed_data name: typed_data
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.0-nullsafety.2" version: "1.3.0-nullsafety.3"
url_launcher: url_launcher:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1108,7 +1115,7 @@ packages:
name: vector_math name: vector_math
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0-nullsafety.2" version: "2.1.0-nullsafety.3"
version: version:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1194,5 +1201,5 @@ packages:
source: hosted source: hosted
version: "2.2.1" version: "2.2.1"
sdks: sdks:
dart: ">=2.10.0-4.0.dev <2.10.0" dart: ">=2.10.0-110 <=2.11.0-213.1.beta"
flutter: ">=1.20.0 <2.0.0" flutter: ">=1.20.0 <2.0.0"

View File

@ -57,6 +57,7 @@ dependencies:
#idb_shim: ^1.11.1+1 #idb_shim: ^1.11.1+1
flutter_launcher_icons: ^0.8.0 flutter_launcher_icons: ^0.8.0
overflow_view: ^0.2.1 overflow_view: ^0.2.1
contact_picker: ^0.0.2
dev_dependencies: dev_dependencies:
flutter_driver: flutter_driver: