feat: add missing PhoneNumberToCarrierMapper feature that is available in java version#317
feat: add missing PhoneNumberToCarrierMapper feature that is available in java version#317wmundev wants to merge 6 commits intotwcclegg:mainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a C# implementation of carrier-name lookup to bring the library closer to libphonenumber’s Java feature set, reusing the existing prefix-mapping/resource-loading model already used for offline geocoding.
Changes:
- Add
PhoneNumberToCarrierMapperand sharedPrefixFileReadersupport for carrier prefix data from embedded folders or zip resources. - Expose
PhoneNumberUtil.IsMobileNumberPortableRegionand add unit tests covering production, synthetic, and zipped carrier datasets. - Wire carrier resources into project files, CI/build scripts, ignore rules, and README usage/testing documentation.
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
csharp/PhoneNumbers/PrefixFileReader.cs |
New shared loader for prefix-based mapping data used by carrier lookups. |
csharp/PhoneNumbers/PhoneNumbers.csproj |
Embeds carrier resources similarly to geocoding resources. |
csharp/PhoneNumbers/PhoneNumberUtil.cs |
Adds region-level mobile-number-portability lookup API. |
csharp/PhoneNumbers/PhoneNumberToCarrierMapper.cs |
Introduces the public carrier-mapper API and singleton access. |
csharp/PhoneNumbers.Test/TestPhoneNumberToCarrierMapper.cs |
Adds production/test/zipped-path coverage for carrier lookup behavior. |
csharp/PhoneNumbers.Test/PhoneNumbers.Test.csproj |
Embeds test carrier resources and zipped test archive. |
appveyor.yml |
Updates Windows CI packaging steps for carrier resources. |
README.md |
Documents carrier lookup usage and local test zip generation. |
.gitignore |
Ignores generated carrier zip artifacts. |
.github/workflows/run_all_tests_and_upload_code_coverage.yml |
Generates zipped test carrier data for Windows GitHub Actions. |
.github/workflows/build_and_run_unit_tests_linux.yml |
Generates zipped test carrier data for Linux GitHub Actions. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 12 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…e in java version
46876b4 to
aec7dd5
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #317 +/- ##
==========================================
+ Coverage 75.31% 75.79% +0.47%
==========================================
Files 38 40 +2
Lines 4638 4713 +75
Branches 1097 1114 +17
==========================================
+ Hits 3493 3572 +79
+ Misses 917 912 -5
- Partials 228 229 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
…per-phone-number # Conflicts: # README.md
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 11 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
i'll hold off on merging this until #323 is merged |
…per-phone-number # Conflicts: # .github/workflows/build_and_run_unit_tests_linux.yml # .github/workflows/run_all_tests_and_upload_code_coverage.yml # appveyor.yml # csharp/PhoneNumbers.Test/PhoneNumbers.Test.csproj # csharp/PhoneNumbers/PhoneNumbers.csproj
| "test" => BuildPerRegion(input, output, TestMetadataPrefix, | ||
| isShortNumberMetadata: false, isAlternateFormatsMetadata: false), | ||
| "geocoding" => BuildGeocoding(input, output), | ||
| "carrier" => BuildGeocoding(input, output), |
| /// <returns>A carrier name for the given phone number, or empty string if not found.</returns> | ||
| public string GetNameForValidNumber(PhoneNumber number, Locale languageCode) | ||
| { | ||
| return prefixFileReader.GetDescriptionForNumber( |
There was a problem hiding this comment.
Add:
// No script is specified — Java's Locale.getScript() has no equivalent on this
// port's Locale type. Matches the same omission in PhoneNumberOfflineGeocoder.
Changes