Loading src/java/com/android/internal/telephony/Phone.java +1 −1 Original line number Diff line number Diff line Loading @@ -267,7 +267,7 @@ public abstract class Phone extends Handler implements PhoneInternalInterface { public static final String EXTRA_KEY_ALERT_TITLE = "alertTitle"; public static final String EXTRA_KEY_ALERT_MESSAGE = "alertMessage"; public static final String EXTRA_KEY_ALERT_SHOW = "alertShow"; protected static final String EXTRA_KEY_NOTIFICATION_MESSAGE = "notificationMessage"; public static final String EXTRA_KEY_NOTIFICATION_MESSAGE = "notificationMessage"; private final RegistrantList mPreciseCallStateRegistrants = new RegistrantList(); Loading src/java/com/android/internal/telephony/imsphone/ImsPhone.java +1 −1 Original line number Diff line number Diff line Loading @@ -1476,7 +1476,7 @@ public class ImsPhone extends ImsPhoneBase { com.android.internal.R.array.wfcOperatorErrorNotificationMessages); for (int i = 0; i < wfcOperatorErrorCodes.length; i++) { String[] codes = wfcOperatorErrorCodes[i].split("|"); String[] codes = wfcOperatorErrorCodes[i].split("\\|"); if (codes.length != 2) { Rlog.e(LOG_TAG, "Invalid carrier config: " + wfcOperatorErrorCodes[i]); continue; Loading tests/telephonytests/src/com/android/internal/telephony/ContextFixture.java +34 −0 Original line number Diff line number Diff line Loading @@ -302,6 +302,40 @@ public class ContextFixture implements TestFixture<Context> { sendBroadcast(intent); } @Override public void sendOrderedBroadcast(Intent intent, String receiverPermission) { logd("sendOrderedBroadcast called for " + intent.getAction()); sendBroadcast(intent); } @Override public void sendOrderedBroadcast(Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras) { sendOrderedBroadcast(intent, receiverPermission); if (resultReceiver != null) { synchronized (mOrderedBroadcastReceivers) { mOrderedBroadcastReceivers.put(intent, resultReceiver); } } } @Override public void sendOrderedBroadcast(Intent intent, String receiverPermission, Bundle options, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras) { sendOrderedBroadcast(intent, receiverPermission, resultReceiver, scheduler, initialCode, initialData, initialExtras); } @Override public void sendOrderedBroadcast(Intent intent, String receiverPermission, int appOp, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras) { sendOrderedBroadcast(intent, receiverPermission, resultReceiver, scheduler, initialCode, initialData, initialExtras); } @Override public void sendBroadcastAsUser(Intent intent, UserHandle user) { sendBroadcast(intent); Loading tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneTest.java +44 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.internal.telephony.imsphone; import android.app.Activity; import android.app.IApplicationThread; import android.content.BroadcastReceiver; import android.content.IIntentReceiver; import android.content.Intent; import android.os.AsyncResult; Loading @@ -25,11 +26,15 @@ import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.Message; import android.os.PersistableBundle; import android.os.SystemProperties; import android.telephony.CarrierConfigManager; import android.test.suitebuilder.annotation.SmallTest; import com.android.ims.ImsCallProfile; import com.android.ims.ImsEcbmStateListener; import com.android.ims.ImsManager; import com.android.ims.ImsReasonInfo; import com.android.ims.ImsStreamMediaProfile; import com.android.ims.ImsUtInterface; import com.android.internal.telephony.Call; Loading Loading @@ -64,6 +69,7 @@ import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyLong; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.times; Loading Loading @@ -566,4 +572,42 @@ public class ImsPhoneTest extends TelephonyTest { // verify wakeLock released assertEquals(false, mImsPhoneUT.getWakeLock().isHeld()); } @Test @SmallTest public void testProcessDisconnectReason() throws Exception { // set up CarrierConfig PersistableBundle bundle = mContextFixture.getCarrierConfigBundle(); bundle.putStringArray(CarrierConfigManager.KEY_WFC_OPERATOR_ERROR_CODES_STRING_ARRAY, new String[]{"REG09|0"}); // set up overlays String title = "title"; String messageAlert = "Alert!"; String messageNotification = "Notification!"; mContextFixture.putStringArrayResource( com.android.internal.R.array.wfcOperatorErrorAlertMessages, new String[]{messageAlert}); mContextFixture.putStringArrayResource( com.android.internal.R.array.wfcOperatorErrorNotificationMessages, new String[]{messageNotification}); mContextFixture.putResource(com.android.internal.R.string.wfcRegErrorTitle, title); mImsPhoneUT.processDisconnectReason( new ImsReasonInfo(ImsReasonInfo.CODE_REGISTRATION_ERROR, 0, "REG09")); // TODO: Verify that WFC has been turned off (can't do it right now because // setWfcSetting is static). //verify(mImsManager).setWfcSetting(any(), eq(false)); ArgumentCaptor<Intent> intent = ArgumentCaptor.forClass(Intent.class); verify(mContext).sendOrderedBroadcast( intent.capture(), anyString(), any(BroadcastReceiver.class), any(), eq(Activity.RESULT_OK), anyString(), any()); assertEquals(ImsManager.ACTION_IMS_REGISTRATION_ERROR, intent.getValue().getAction()); assertEquals(title, intent.getValue().getStringExtra(Phone.EXTRA_KEY_ALERT_TITLE)); assertEquals(messageAlert, intent.getValue().getStringExtra(Phone.EXTRA_KEY_ALERT_MESSAGE)); assertEquals(messageNotification, intent.getValue().getStringExtra(Phone.EXTRA_KEY_NOTIFICATION_MESSAGE)); } } Loading
src/java/com/android/internal/telephony/Phone.java +1 −1 Original line number Diff line number Diff line Loading @@ -267,7 +267,7 @@ public abstract class Phone extends Handler implements PhoneInternalInterface { public static final String EXTRA_KEY_ALERT_TITLE = "alertTitle"; public static final String EXTRA_KEY_ALERT_MESSAGE = "alertMessage"; public static final String EXTRA_KEY_ALERT_SHOW = "alertShow"; protected static final String EXTRA_KEY_NOTIFICATION_MESSAGE = "notificationMessage"; public static final String EXTRA_KEY_NOTIFICATION_MESSAGE = "notificationMessage"; private final RegistrantList mPreciseCallStateRegistrants = new RegistrantList(); Loading
src/java/com/android/internal/telephony/imsphone/ImsPhone.java +1 −1 Original line number Diff line number Diff line Loading @@ -1476,7 +1476,7 @@ public class ImsPhone extends ImsPhoneBase { com.android.internal.R.array.wfcOperatorErrorNotificationMessages); for (int i = 0; i < wfcOperatorErrorCodes.length; i++) { String[] codes = wfcOperatorErrorCodes[i].split("|"); String[] codes = wfcOperatorErrorCodes[i].split("\\|"); if (codes.length != 2) { Rlog.e(LOG_TAG, "Invalid carrier config: " + wfcOperatorErrorCodes[i]); continue; Loading
tests/telephonytests/src/com/android/internal/telephony/ContextFixture.java +34 −0 Original line number Diff line number Diff line Loading @@ -302,6 +302,40 @@ public class ContextFixture implements TestFixture<Context> { sendBroadcast(intent); } @Override public void sendOrderedBroadcast(Intent intent, String receiverPermission) { logd("sendOrderedBroadcast called for " + intent.getAction()); sendBroadcast(intent); } @Override public void sendOrderedBroadcast(Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras) { sendOrderedBroadcast(intent, receiverPermission); if (resultReceiver != null) { synchronized (mOrderedBroadcastReceivers) { mOrderedBroadcastReceivers.put(intent, resultReceiver); } } } @Override public void sendOrderedBroadcast(Intent intent, String receiverPermission, Bundle options, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras) { sendOrderedBroadcast(intent, receiverPermission, resultReceiver, scheduler, initialCode, initialData, initialExtras); } @Override public void sendOrderedBroadcast(Intent intent, String receiverPermission, int appOp, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras) { sendOrderedBroadcast(intent, receiverPermission, resultReceiver, scheduler, initialCode, initialData, initialExtras); } @Override public void sendBroadcastAsUser(Intent intent, UserHandle user) { sendBroadcast(intent); Loading
tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneTest.java +44 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.internal.telephony.imsphone; import android.app.Activity; import android.app.IApplicationThread; import android.content.BroadcastReceiver; import android.content.IIntentReceiver; import android.content.Intent; import android.os.AsyncResult; Loading @@ -25,11 +26,15 @@ import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.Message; import android.os.PersistableBundle; import android.os.SystemProperties; import android.telephony.CarrierConfigManager; import android.test.suitebuilder.annotation.SmallTest; import com.android.ims.ImsCallProfile; import com.android.ims.ImsEcbmStateListener; import com.android.ims.ImsManager; import com.android.ims.ImsReasonInfo; import com.android.ims.ImsStreamMediaProfile; import com.android.ims.ImsUtInterface; import com.android.internal.telephony.Call; Loading Loading @@ -64,6 +69,7 @@ import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyLong; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.times; Loading Loading @@ -566,4 +572,42 @@ public class ImsPhoneTest extends TelephonyTest { // verify wakeLock released assertEquals(false, mImsPhoneUT.getWakeLock().isHeld()); } @Test @SmallTest public void testProcessDisconnectReason() throws Exception { // set up CarrierConfig PersistableBundle bundle = mContextFixture.getCarrierConfigBundle(); bundle.putStringArray(CarrierConfigManager.KEY_WFC_OPERATOR_ERROR_CODES_STRING_ARRAY, new String[]{"REG09|0"}); // set up overlays String title = "title"; String messageAlert = "Alert!"; String messageNotification = "Notification!"; mContextFixture.putStringArrayResource( com.android.internal.R.array.wfcOperatorErrorAlertMessages, new String[]{messageAlert}); mContextFixture.putStringArrayResource( com.android.internal.R.array.wfcOperatorErrorNotificationMessages, new String[]{messageNotification}); mContextFixture.putResource(com.android.internal.R.string.wfcRegErrorTitle, title); mImsPhoneUT.processDisconnectReason( new ImsReasonInfo(ImsReasonInfo.CODE_REGISTRATION_ERROR, 0, "REG09")); // TODO: Verify that WFC has been turned off (can't do it right now because // setWfcSetting is static). //verify(mImsManager).setWfcSetting(any(), eq(false)); ArgumentCaptor<Intent> intent = ArgumentCaptor.forClass(Intent.class); verify(mContext).sendOrderedBroadcast( intent.capture(), anyString(), any(BroadcastReceiver.class), any(), eq(Activity.RESULT_OK), anyString(), any()); assertEquals(ImsManager.ACTION_IMS_REGISTRATION_ERROR, intent.getValue().getAction()); assertEquals(title, intent.getValue().getStringExtra(Phone.EXTRA_KEY_ALERT_TITLE)); assertEquals(messageAlert, intent.getValue().getStringExtra(Phone.EXTRA_KEY_ALERT_MESSAGE)); assertEquals(messageNotification, intent.getValue().getStringExtra(Phone.EXTRA_KEY_NOTIFICATION_MESSAGE)); } }