chanaging size of profile avatar selectionbecause just too big on smaller screens

and fixed bug with the list of contacts not showing all existing users from my contacts
This commit is contained in:
talksik
2021-12-20 22:57:45 -08:00
parent c0b898c2e6
commit 78ece9d243
3 changed files with 9 additions and 8 deletions
@@ -66,7 +66,7 @@ struct AddBasicInfoView: View {
Image(Avatars.avatarSystemNames[index]) Image(Avatars.avatarSystemNames[index])
.resizable() .resizable()
.scaledToFit() .scaledToFit()
.frame(width: 100, height: 100, alignment: .center) .frame(width: 50, height: 50, alignment: .center)
.blur(radius: self.selectedAvatarIndex == index ? 0 : 1) .blur(radius: self.selectedAvatarIndex == index ? 0 : 1)
.scaleEffect(self.selectedAvatarIndex == index ? 1.3 : 1) .scaleEffect(self.selectedAvatarIndex == index ? 1.3 : 1)
.padding() .padding()
@@ -21,10 +21,6 @@ class ContactsViewModel : ObservableObject {
CNContactEmailAddressesKey as CNKeyDescriptor, CNContactEmailAddressesKey as CNKeyDescriptor,
CNContactFormatter.descriptorForRequiredKeys(for: .fullName)] CNContactFormatter.descriptorForRequiredKeys(for: .fullName)]
init() {
self.fetchContacts()
}
func openSettings() { func openSettings() {
guard let settingsURL = URL(string: UIApplication.openSettingsURLString) else { return } guard let settingsURL = URL(string: UIApplication.openSettingsURLString) else { return }
if UIApplication.shared.canOpenURL(settingsURL) { UIApplication.shared.open(settingsURL)} if UIApplication.shared.canOpenURL(settingsURL) { UIApplication.shared.open(settingsURL)}
@@ -52,7 +48,7 @@ class ContactsViewModel : ObservableObject {
fetchRequest.sortOrder = .userDefault fetchRequest.sortOrder = .userDefault
do { do {
try store.enumerateContacts(with: fetchRequest) {(contact, stop) in try store.enumerateContacts(with: fetchRequest) {[weak self](contact, stop) in
// only checking if american number or not for now // only checking if american number or not for now
var cnPhoneNumber = contact.phoneNumbers.first?.value.stringValue var cnPhoneNumber = contact.phoneNumbers.first?.value.stringValue
let contactDisplayName = contact.givenName + " " + contact.familyName let contactDisplayName = contact.givenName + " " + contact.familyName
@@ -70,7 +66,7 @@ class ContactsViewModel : ObservableObject {
var contactVm = ContactsViewModelContact(cnName: contactDisplayName, cnPhoneNumber: contactNumber, sortingProp: contactDisplayName) var contactVm = ContactsViewModelContact(cnName: contactDisplayName, cnPhoneNumber: contactNumber, sortingProp: contactDisplayName)
// check if the contact is an existing user by phone number // check if the contact is an existing user by phone number
self.firestoreService.getUserByPhoneNumber(phoneNumber: contactNumber) {[weak self] returnedUser in self?.firestoreService.getUserByPhoneNumber(phoneNumber: contactNumber) {[weak self] returnedUser in
DispatchQueue.main.async { DispatchQueue.main.async {
if returnedUser == nil { if returnedUser == nil {
// do nothing, keep contactsVm object user property nil // do nothing, keep contactsVm object user property nil
@@ -78,13 +74,15 @@ class ContactsViewModel : ObservableObject {
contactVm.sortingProp = contactVm.cnName contactVm.sortingProp = contactVm.cnName
} else { } else {
// adding user details if this contact is existing user // adding user details if this contact is existing user
contactVm.sortingProp = "!" // adding for sorting purposes // TODO: BUGGGG replaces each existing contact this way...need to keep the key for the dict unique
contactVm.sortingProp = "!" + contactVm.cnName // adding for sorting purposes
contactVm.user = returnedUser contactVm.user = returnedUser
contactVm.isExisting = true contactVm.isExisting = true
print("existing user: \(contactVm.cnName)") print("existing user: \(contactVm.cnName)")
} }
self?.contacts[contactVm.sortingProp] = contactVm self?.contacts[contactVm.sortingProp] = contactVm
print(self?.contacts)
} }
} }
} }
@@ -37,6 +37,9 @@ struct FindFriendsView: View {
Text("Cancel") Text("Cancel")
})) }))
} }
.onAppear {
self.contactsVM.fetchContacts()
}
} }
var searchItems: [String] { var searchItems: [String] {