Skip to content

Commit

Permalink
Sim operator fix (#261)
Browse files Browse the repository at this point in the history
* Calling getSimOperator once

* Validating simOperator calls

* Updated changelog
  • Loading branch information
LikeTheSalad authored Jan 18, 2024
1 parent ed1a6dc commit dbd3b99
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 8 deletions.
4 changes: 2 additions & 2 deletions CHANGELOG.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ ${next_release_notes}
==== ${version} - ${release_date}

[float]
===== Features
===== Bug fixes

* New feature: {pull}000[#000]
* Fix for #254: {pull}261[#261]
////
[[release-notes-0.13.0]]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,11 @@ private synchronized void setType(NetworkType networkType) {

@Nullable
public CarrierInfo getCarrierInfo() {
if (!canQueryCarrierInfo()) {
String simOperator = getSimOperator();
if (simOperator == null) {
return null;
}

String simOperator = telephonyManager.getSimOperator();
String mcc = simOperator.substring(0, 3);
String mnc = simOperator.substring(3);
return new CarrierInfo(telephonyManager.getSimOperatorName(),
Expand Down Expand Up @@ -114,10 +114,15 @@ public void onLost(@NonNull Network network) {
setType(NetworkType.none());
}

private boolean canQueryCarrierInfo() {
String simOperator = telephonyManager.getSimOperator();
return telephonyManager.getSimState() == TelephonyManager.SIM_STATE_READY
&& simOperator != null && simOperator.length() > 3;
private String getSimOperator() {
if (telephonyManager.getSimState() == TelephonyManager.SIM_STATE_READY) {
String simOperator = telephonyManager.getSimOperator();
if (simOperator != null && simOperator.length() > 3) {
return simOperator;
}
}

return null;
}

private AppInfoService getAppInfoService() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@
*/
package co.elastic.apm.android.sdk.internal.services.network;

import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.when;

import android.net.ConnectivityManager;
import android.telephony.TelephonyManager;
Expand Down Expand Up @@ -58,4 +60,12 @@ public void getCarrierInfo_whenSimOperatorIsEmpty() {

assertNull(networkService.getCarrierInfo());
}

@Test
public void getCarrierInfo_fromFirstSimOperatorResponse() {
when(telephonyManager.getSimOperator()).thenReturn("1234").thenReturn("");
doReturn(TelephonyManager.SIM_STATE_READY).when(telephonyManager).getSimState();

assertNotNull(networkService.getCarrierInfo());
}
}

0 comments on commit dbd3b99

Please sign in to comment.