[BREAKGLASS] A private messenger for iOS. https://signal.org
Go to file
George Nachman 22c1cb8a22 Fetch phone numbers in a batch.
This is the first meaty part of optimizing
fetching display names.

Some contacts fall back to phone numbers as their
display names. This PR fetches them in a single
SQL query via
`OWSContactsManager.phoneNumbers(for:, transaction)`.

To achieve this, this PR introduces
`GRDBSignalAccountFinder.signalAccounts(for:,transaction:)`
to fetch many accounts at once.

In order to fetch many accounts at once, we need
to be able to fetch many values from a
ModelReadCache at once. So this PR introduces
`ModelReadCache.readValues(for:,transaction:)` and
`ModelReadCache.getValues(for:,transaction:,returnNilOnCacheMiss:)`.

Existing methods that operate on a single value
were refactored to use the batch methods.

This PR adds tests for this functionality, which
necessitated changing the visibility of various
private symbols and also improving the fake
profile manager to make it more configurable.

There's also a tiny optimization for Refinery to
avoid calling a closure that has no work to do.
This helps elide do-nothing SQL queries that would
otherwise have been introduced.
2022-03-17 12:46:33 -07:00
.github CI: Upload build logs on failure 2022-02-02 16:06:38 -08:00
fastlane Switch to using App Store Connect API for release builds 2022-03-16 19:42:03 -07:00
Instruments added missing Signalyzer file (#4017) 2022-02-21 08:07:21 +01:00
Pods@2e96325502 Fetch phone numbers in a batch. 2022-03-17 12:46:33 -07:00
Scripts merged master and pod files 2022-03-15 12:49:11 +01:00
Signal Fetch phone numbers in a batch. 2022-03-17 12:46:33 -07:00
Signal.xcodeproj Fetch phone numbers in a batch. 2022-03-17 12:46:33 -07:00
Signal.xcworkspace Update workspace settings to use modern build system. Update Podfile to strip VALID_ARCHS flag from generated target xcconfig (deprecated in Xcode 12) 2021-06-17 14:29:14 -07:00
SignalMessaging Fetch phone numbers in a batch. 2022-03-17 12:46:33 -07:00
SignalNSE "Bump build to 5.33.0.12." (Internal) 2022-03-17 10:49:20 -07:00
SignalServiceKit Fetch phone numbers in a batch. 2022-03-17 12:46:33 -07:00
SignalShareExtension "Bump build to 5.33.0.12." (Internal) 2022-03-17 10:49:20 -07:00
SignalUI Merge branch 'master' into martin/IOS-2234 2022-03-17 09:09:37 +01:00
SignalUITests Move MobileCoin SDK to SignalUI. 2021-11-02 14:26:04 -03:00
ThirdParty Update to latest RingRTC 2022-03-04 14:17:04 -08:00
.clang-format Update clang-format with AllowShortEnumsOnASingleLine: false 2022-03-14 11:20:20 -07:00
.gitattributes Supporting diffing of localizablestrings. 2015-09-14 12:26:47 +02:00
.gitignore Manage app store metadata with transifex 2021-04-22 12:53:43 -07:00
.gitmodules Convert to just using CocoaPods for dependencies 2020-01-02 12:03:57 -08:00
.ruby-version Update to ruby 2.6.9 2022-01-10 10:50:09 -06:00
.swiftlint.yml SwiftLint: attributes should be on preceding lines 2020-11-02 13:59:42 -08:00
.xcode-version Use Xcode 13 for nightly builds 2021-08-20 15:36:46 -07:00
BUILDING.md The Application Group string is located in TSConstants.swift. 2020-06-23 19:09:49 -07:00
CONTRIBUTING.md Update donation link in contribution instructions 2020-08-19 15:12:03 -05:00
Gemfile Update to Signal built OpenSSL 1.1.1k with M1 and Catalyst support 2021-06-17 14:45:29 -07:00
Gemfile.lock Update fastlane 2021-07-22 13:34:32 -07:00
Jenkinsfile ci labels PRs with GH title 2019-01-11 10:53:22 -07:00
LICENSE Update license. 2017-04-11 18:09:16 -04:00
MAINTAINING.md PR Feedback 2020-01-02 12:06:44 -08:00
Makefile Show progress during make dependencies 2022-01-27 09:39:48 -08:00
Podfile Update to MobileCoin v1.2.0-pre10 2022-03-04 15:07:50 -08:00
Podfile.lock updated SignalCoreKit pod 2022-03-15 11:36:04 +01:00
README.md Update license year in README 2022-03-04 16:03:15 -06:00
SignalServiceKit.podspec Import SignalMetadataKit wholesale into SignalServiceKit 2022-01-26 09:50:55 -08:00

Signal iOS

Signal is a free, open source, messaging app for simple private communication with friends.

Available on the App Store

Also available on Android and Desktop.

Questions?

For troubleshooting and questions, please visit our support center or unofficial community forum.

Contributing Bug Reports

We use GitHub for bug tracking. Please search existing issues and create a new one if the issue is not yet tracked. For Android users, please use the Signal for Android issue tracker.

Contributing Translations

Help us translate Signal! The translation effort happens on Transifex.

Contributing Code

Instructions on how to setup your development environment and build Signal-iOS can be found in BUILDING.md. Other useful instructions for development can be found in the Development Guide wiki page. We also recommend reading the contribution guidelines.

Contributing Ideas

Have something you want to say about Signal Foundation projects or want to be part of the conversation? Get involved in the community forum.

Cryptography Notice

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

License

Licensed under GPLv3

Copyright 2014-2022 Open Whisper Systems

Apple and the Apple logo are trademarks of Apple Inc., registered in the U.S. and other countries. App Store is a service mark of Apple Inc., registered in the U.S. and other countries.