Merge "Remove calls to APIs no longer being supported"
diff --git a/src/com/android/settings/CryptKeeper.java b/src/com/android/settings/CryptKeeper.java
index 05054b4..df912db 100644
--- a/src/com/android/settings/CryptKeeper.java
+++ b/src/com/android/settings/CryptKeeper.java
@@ -964,7 +964,7 @@
}
private boolean isEmergencyCallCapable() {
- return getResources().getBoolean(com.android.internal.R.bool.config_voice_capable);
+ return getTelephonyManager().isVoiceCapable();
}
private void takeEmergencyCallAction() {
diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
index 857f535..0751141 100644
--- a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
+++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
@@ -26,6 +26,7 @@
import android.os.PersistableBundle;
import android.os.UserHandle;
import android.telephony.CarrierConfigManager;
+import android.telephony.CellSignalStrength;
import android.telephony.PhoneStateListener;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
@@ -48,6 +49,8 @@
import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume;
+import java.util.List;
+
public class SimStatusDialogController implements LifecycleObserver, OnResume, OnPause {
private final static String TAG = "SimStatusDialogCtrl";
@@ -430,11 +433,37 @@
}
private int getDbm(SignalStrength signalStrength) {
- return signalStrength.getDbm();
+ List<CellSignalStrength> cellSignalStrengthList = signalStrength.getCellSignalStrengths();
+ int dbm = -1;
+ if (cellSignalStrengthList == null) {
+ return dbm;
+ }
+
+ for (CellSignalStrength cell : cellSignalStrengthList) {
+ if (cell.getDbm() != -1) {
+ dbm = cell.getDbm();
+ break;
+ }
+ }
+
+ return dbm;
}
private int getAsuLevel(SignalStrength signalStrength) {
- return signalStrength.getAsuLevel();
+ List<CellSignalStrength> cellSignalStrengthList = signalStrength.getCellSignalStrengths();
+ int asu = -1;
+ if (cellSignalStrengthList == null) {
+ return asu;
+ }
+
+ for (CellSignalStrength cell : cellSignalStrengthList) {
+ if (cell.getAsuLevel() != -1) {
+ asu = cell.getAsuLevel();
+ break;
+ }
+ }
+
+ return asu;
}
@VisibleForTesting
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java
index 3ecdcff..5a74804 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java
@@ -45,6 +45,10 @@
import android.content.pm.PackageInfo;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
+import android.telephony.CellSignalStrength;
+import android.telephony.CellSignalStrengthCdma;
+import android.telephony.CellSignalStrengthLte;
+import android.telephony.CellSignalStrengthWcdma;
import android.telephony.PhoneStateListener;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
@@ -73,6 +77,9 @@
import org.robolectric.shadows.ShadowPackageManager;
import org.robolectric.util.ReflectionHelpers;
+import java.util.ArrayList;
+import java.util.List;
+
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowDeviceInfoUtils.class})
public class SimStatusDialogControllerTest {
@@ -90,6 +97,12 @@
@Mock
private SignalStrength mSignalStrength;
@Mock
+ private CellSignalStrengthCdma mCellSignalStrengthCdma;
+ @Mock
+ private CellSignalStrengthLte mCellSignalStrengthLte;
+ @Mock
+ private CellSignalStrengthWcdma mCellSignalStrengthWcdma;
+ @Mock
private CarrierConfigManager mCarrierConfigManager;
@Mock
private PersistableBundle mPersistableBundle;
@@ -113,8 +126,15 @@
mController = spy(new SimStatusDialogController(mDialog, mLifecycle, 0 /* phone id */));
ShadowDeviceInfoUtils.setPhoneNumber("");
doReturn(mServiceState).when(mController).getCurrentServiceState();
- doReturn(0).when(mSignalStrength).getDbm();
- doReturn(0).when(mSignalStrength).getAsuLevel();
+ //CellSignalStrength setup
+ doReturn(0).when(mCellSignalStrengthCdma).getDbm();
+ doReturn(0).when(mCellSignalStrengthCdma).getAsuLevel();
+ doReturn(0).when(mCellSignalStrengthLte).getDbm();
+ doReturn(0).when(mCellSignalStrengthLte).getAsuLevel();
+ doReturn(0).when(mCellSignalStrengthWcdma).getDbm();
+ doReturn(0).when(mCellSignalStrengthWcdma).getAsuLevel();
+
+ doReturn(null).when(mSignalStrength).getCellSignalStrengths();
doReturn(mPhoneStateListener).when(mController).getPhoneStateListener();
doReturn(mSignalStrength).when(mController).getSignalStrength();
doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(anyInt());
@@ -226,18 +246,36 @@
}
@Test
- public void initialize_updateSignalStrengthWith50_shouldUpdateSignalStrengthTo50() {
- final int signalDbm = 50;
- final int signalAsu = 50;
- doReturn(signalDbm).when(mSignalStrength).getDbm();
- doReturn(signalAsu).when(mSignalStrength).getAsuLevel();
+ public void initialize_updateSignalStrengthWithLte50Wcdma40_shouldUpdateSignalStrengthTo50() {
+ final int lteDbm = 50;
+ final int lteAsu = 50;
+ final int wcdmaDbm = 40;
+ final int wcdmaAsu = 40;
+ setupCellSignalStrength_lteWcdma(lteDbm, lteAsu, wcdmaDbm, wcdmaAsu);
when(mPersistableBundle.getBoolean(
CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL)).thenReturn(true);
mController.initialize();
final String signalStrengthString =
- mContext.getString(R.string.sim_signal_strength, signalDbm, signalAsu);
+ mContext.getString(R.string.sim_signal_strength, lteDbm, lteAsu);
+ verify(mDialog).setText(SIGNAL_STRENGTH_VALUE_ID, signalStrengthString);
+ }
+
+ @Test
+ public void initialize_updateSignalStrengthWithLte50Cdma30_shouldUpdateSignalStrengthTo50() {
+ final int lteDbm = 50;
+ final int lteAsu = 50;
+ final int cdmaDbm = 30;
+ final int cdmaAsu = 30;
+ setupCellSignalStrength_lteCdma(lteDbm, lteAsu, cdmaDbm, cdmaAsu);
+ when(mPersistableBundle.getBoolean(
+ CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL)).thenReturn(true);
+
+ mController.initialize();
+
+ final String signalStrengthString =
+ mContext.getString(R.string.sim_signal_strength, lteDbm, lteAsu);
verify(mDialog).setText(SIGNAL_STRENGTH_VALUE_ID, signalStrengthString);
}
@@ -248,17 +286,16 @@
when(mPersistableBundle.getBoolean(
CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL)).thenReturn(true);
- final int signalDbm = 50;
- final int signalAsu = 50;
- doReturn(signalDbm).when(mSignalStrength).getDbm();
- doReturn(signalAsu).when(mSignalStrength).getAsuLevel();
+ final int lteDbm = 50;
+ final int lteAsu = 50;
+ setupCellSignalStrength_lteOnly(lteDbm, lteAsu);
when(mPersistableBundle.getBoolean(
CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL)).thenReturn(true);
mController.initialize();
final String signalStrengthString =
- mContext.getString(R.string.sim_signal_strength, signalDbm, signalAsu);
+ mContext.getString(R.string.sim_signal_strength, lteDbm, lteAsu);
verify(mDialog).setText(SIGNAL_STRENGTH_VALUE_ID, signalStrengthString);
}
@@ -423,4 +460,41 @@
// we should not crash when running the following line
mController.initialize();
}
+
+ private void setupCellSignalStrength_lteWcdma(int lteDbm, int lteAsu, int wcdmaDbm,
+ int wcdmaAsu) {
+ doReturn(lteDbm).when(mCellSignalStrengthLte).getDbm();
+ doReturn(lteAsu).when(mCellSignalStrengthLte).getAsuLevel();
+ doReturn(wcdmaDbm).when(mCellSignalStrengthWcdma).getDbm();
+ doReturn(wcdmaAsu).when(mCellSignalStrengthWcdma).getAsuLevel();
+
+ List<CellSignalStrength> cellSignalStrengthList = new ArrayList<>(2);
+ cellSignalStrengthList.add(mCellSignalStrengthLte);
+ cellSignalStrengthList.add(mCellSignalStrengthWcdma);
+
+ doReturn(cellSignalStrengthList).when(mSignalStrength).getCellSignalStrengths();
+ }
+
+ private void setupCellSignalStrength_lteCdma(int lteDbm, int lteAsu, int cdmaDbm, int cdmaAsu) {
+ doReturn(lteDbm).when(mCellSignalStrengthLte).getDbm();
+ doReturn(lteAsu).when(mCellSignalStrengthLte).getAsuLevel();
+ doReturn(cdmaDbm).when(mCellSignalStrengthCdma).getDbm();
+ doReturn(cdmaAsu).when(mCellSignalStrengthCdma).getAsuLevel();
+
+ List<CellSignalStrength> cellSignalStrengthList = new ArrayList<>(2);
+ cellSignalStrengthList.add(mCellSignalStrengthLte);
+ cellSignalStrengthList.add(mCellSignalStrengthCdma);
+
+ doReturn(cellSignalStrengthList).when(mSignalStrength).getCellSignalStrengths();
+ }
+
+ private void setupCellSignalStrength_lteOnly(int lteDbm, int lteAsu) {
+ doReturn(lteDbm).when(mCellSignalStrengthLte).getDbm();
+ doReturn(lteAsu).when(mCellSignalStrengthLte).getAsuLevel();
+
+ List<CellSignalStrength> cellSignalStrengthList = new ArrayList<>(2);
+ cellSignalStrengthList.add(mCellSignalStrengthLte);
+
+ doReturn(cellSignalStrengthList).when(mSignalStrength).getCellSignalStrengths();
+ }
}