Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.10 KB | None | 0 0
  1. import { Component, OnInit } from '@angular/core';
  2. import { NavController, NavParams, LoadingController, AlertController } from '@ionic/angular';
  3. import { DomSanitizer } from '@angular/platform-browser';
  4. import { ViewController } from '@ionic/core';
  5. import { Contacts, Contact, ContactField, ContactName } from '@ionic-native/contacts/ngx';
  6. // import * as _ from 'underscore';
  7. import { _ } from 'underscore';
  8.  
  9. @Component({
  10. selector: 'app-select-contact',
  11. templateUrl: './select-contact.page.html',
  12. styleUrls: ['./select-contact.page.scss'],
  13. })
  14. export class SelectContactPage implements OnInit {
  15.  
  16. contactList: Contact[];
  17. contactFilteredList = [] as Contact[];
  18. searching = false;
  19.  
  20. constructor(public navCtrl: NavController,
  21. public navParams: NavParams,
  22. private contacts: Contacts,
  23. public loading: LoadingController,
  24. private sanitizer: DomSanitizer,
  25. private viewCtrl: ViewController,
  26. public alertCtrl: AlertController,
  27. public loadingController: LoadingController) { }
  28.  
  29. ionViewDidLoad() {
  30. this.loadContacts();
  31. }
  32.  
  33. async loadContacts() {
  34. const loader = await this.loadingController.create({
  35. message: 'Loading ...'
  36. });
  37.  
  38.  
  39. loader.present().then(() => {
  40. var options = new ContactFindOptions();
  41. options.multiple = true;
  42. options.desiredFields = ['id', 'displayName', 'phoneNumbers'];
  43. options.hasPhoneNumber = true;
  44.  
  45. this.contacts.find(['id'], options).then((contacts) => {
  46. var sortedContacts = _.sortBy(contacts, 'displayName');
  47. this.contactList = this.contactFilteredList = sortedContacts;
  48. loader.dismiss();
  49. }).catch((error) => {
  50. console.error(error);
  51. loader.dismiss();
  52. });
  53. });
  54. }
  55.  
  56.  
  57.  
  58. filterContacts(filter) {
  59. if (filter) {
  60. this.contactFilteredList = _.filter(this.contactList, function(contact: Contact) {
  61. let filterString = filter.target.value.toLowerCase();
  62. return contact.displayName.toLowerCase().includes(filterString);
  63. });
  64. }
  65. }
  66.  
  67. async displayAlert(contact: Contact) {
  68. const alert = await this.alertCtrl.create({
  69. header: 'Choose phone!',
  70. message: 'Choose the phone number you would like to use',
  71. buttons: [
  72. {
  73. text: 'CANCEL'
  74. },
  75. {
  76. text: 'CONTINUE',
  77. handler: data => {
  78. contact.phoneNumbers[0].value = data;
  79. this.viewCtrl.dismiss(contact);
  80. }
  81. }
  82. ]
  83. });
  84. contact.phoneNumbers.forEach((phone, index) => {
  85. // alert.addInput({type: 'radio', label: phone.value, value: phone.value, checked: index==0});
  86. inputs:({type: 'radio', label: phone.value, value: phone.value, checked: index==0});
  87. });
  88. await alert.present();
  89. }
  90.  
  91. contactSelected(contact: Contact) {
  92. if (contact.phoneNumbers.length > 1) {
  93. this.displayAlert(contact);
  94. } else {
  95. this.viewCtrl.dismiss(contact);
  96. }
  97. }
  98.  
  99. goToContactsPage() {
  100. this.navCtrl.push('contactos2');
  101. }
  102.  
  103. ngOnInit() {
  104. }
  105.  
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement