Loading src/com/android/server/telecom/EmergencyCallHelper.java +8 −1 Original line number Diff line number Diff line Loading @@ -82,10 +82,17 @@ public class EmergencyCallHelper { return mLastEmergencyCallTimestampMillis; } void setLastOutgoingEmergencyCallPAH(PhoneAccountHandle accountHandle) { @VisibleForTesting public void setLastOutgoingEmergencyCallTimestampMillis(long timestampMillis) { mLastOutgoingEmergencyCallTimestampMillis = timestampMillis; } @VisibleForTesting public void setLastOutgoingEmergencyCallPAH(PhoneAccountHandle accountHandle) { mLastOutgoingEmergencyCallPAH = accountHandle; } @VisibleForTesting public boolean isLastOutgoingEmergencyCallPAH(PhoneAccountHandle currentCallHandle) { boolean ecbmActive = mLastOutgoingEmergencyCallPAH != null && isInEmergencyCallbackWindow(mLastOutgoingEmergencyCallTimestampMillis) Loading tests/src/com/android/server/telecom/tests/EmergencyCallHelperTest.java +27 −4 Original line number Diff line number Diff line Loading @@ -19,9 +19,11 @@ package com.android.server.telecom.tests; import static android.Manifest.permission.ACCESS_BACKGROUND_LOCATION; import static android.Manifest.permission.ACCESS_FINE_LOCATION; import android.content.Context; import android.content.ComponentName; import android.content.ContentResolver; import android.content.pm.PackageManager; import android.os.UserHandle; import android.telecom.PhoneAccountHandle; import android.test.suitebuilder.annotation.SmallTest; import com.android.server.telecom.Call; Loading @@ -34,19 +36,20 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertFalse; import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.Mockito.any; @RunWith(JUnit4.class) public class EmergencyCallHelperTest extends TelecomTestCase { Loading @@ -62,6 +65,7 @@ public class EmergencyCallHelperTest extends TelecomTestCase { private UserHandle mUserHandle; @Mock private Call mCall; @Mock private PhoneAccountHandle mPhoneAccountHandle; @Override @Before Loading @@ -86,6 +90,8 @@ public class EmergencyCallHelperTest extends TelecomTestCase { when(mCall.isEmergencyCall()).thenReturn(true); when(mContext.getResources().getBoolean(R.bool.grant_location_permission_enabled)).thenReturn( true); when(mTimeoutsAdapter.getEmergencyCallbackWindowMillis(any(ContentResolver.class))).thenReturn( 5000L); } @Override Loading Loading @@ -245,4 +251,21 @@ public class EmergencyCallHelperTest extends TelecomTestCase { verifyRevokeNotInvokedFor(ACCESS_FINE_LOCATION); verifyRevokeInvokedFor(ACCESS_BACKGROUND_LOCATION); } @SmallTest @Test public void testIsLastOutgoingEmergencyCallPAH() { PhoneAccountHandle dummyHandle = new PhoneAccountHandle(new ComponentName("pkg", "cls"), "foo"); long currentTimeMillis = System.currentTimeMillis(); mEmergencyCallHelper.setLastOutgoingEmergencyCallPAH(mPhoneAccountHandle); mEmergencyCallHelper.setLastOutgoingEmergencyCallTimestampMillis(currentTimeMillis); // Verify that ECBM is active on mPhoneAccountHandle. assertTrue(mEmergencyCallHelper.isLastOutgoingEmergencyCallPAH(mPhoneAccountHandle)); assertFalse(mEmergencyCallHelper.isLastOutgoingEmergencyCallPAH(dummyHandle)); // Expire ECBM and verify that mPhoneAccountHandle is no longer supported for ECBM. mEmergencyCallHelper.setLastOutgoingEmergencyCallTimestampMillis(currentTimeMillis/2); assertFalse(mEmergencyCallHelper.isLastOutgoingEmergencyCallPAH(mPhoneAccountHandle)); } } Loading
src/com/android/server/telecom/EmergencyCallHelper.java +8 −1 Original line number Diff line number Diff line Loading @@ -82,10 +82,17 @@ public class EmergencyCallHelper { return mLastEmergencyCallTimestampMillis; } void setLastOutgoingEmergencyCallPAH(PhoneAccountHandle accountHandle) { @VisibleForTesting public void setLastOutgoingEmergencyCallTimestampMillis(long timestampMillis) { mLastOutgoingEmergencyCallTimestampMillis = timestampMillis; } @VisibleForTesting public void setLastOutgoingEmergencyCallPAH(PhoneAccountHandle accountHandle) { mLastOutgoingEmergencyCallPAH = accountHandle; } @VisibleForTesting public boolean isLastOutgoingEmergencyCallPAH(PhoneAccountHandle currentCallHandle) { boolean ecbmActive = mLastOutgoingEmergencyCallPAH != null && isInEmergencyCallbackWindow(mLastOutgoingEmergencyCallTimestampMillis) Loading
tests/src/com/android/server/telecom/tests/EmergencyCallHelperTest.java +27 −4 Original line number Diff line number Diff line Loading @@ -19,9 +19,11 @@ package com.android.server.telecom.tests; import static android.Manifest.permission.ACCESS_BACKGROUND_LOCATION; import static android.Manifest.permission.ACCESS_FINE_LOCATION; import android.content.Context; import android.content.ComponentName; import android.content.ContentResolver; import android.content.pm.PackageManager; import android.os.UserHandle; import android.telecom.PhoneAccountHandle; import android.test.suitebuilder.annotation.SmallTest; import com.android.server.telecom.Call; Loading @@ -34,19 +36,20 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertFalse; import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.Mockito.any; @RunWith(JUnit4.class) public class EmergencyCallHelperTest extends TelecomTestCase { Loading @@ -62,6 +65,7 @@ public class EmergencyCallHelperTest extends TelecomTestCase { private UserHandle mUserHandle; @Mock private Call mCall; @Mock private PhoneAccountHandle mPhoneAccountHandle; @Override @Before Loading @@ -86,6 +90,8 @@ public class EmergencyCallHelperTest extends TelecomTestCase { when(mCall.isEmergencyCall()).thenReturn(true); when(mContext.getResources().getBoolean(R.bool.grant_location_permission_enabled)).thenReturn( true); when(mTimeoutsAdapter.getEmergencyCallbackWindowMillis(any(ContentResolver.class))).thenReturn( 5000L); } @Override Loading Loading @@ -245,4 +251,21 @@ public class EmergencyCallHelperTest extends TelecomTestCase { verifyRevokeNotInvokedFor(ACCESS_FINE_LOCATION); verifyRevokeInvokedFor(ACCESS_BACKGROUND_LOCATION); } @SmallTest @Test public void testIsLastOutgoingEmergencyCallPAH() { PhoneAccountHandle dummyHandle = new PhoneAccountHandle(new ComponentName("pkg", "cls"), "foo"); long currentTimeMillis = System.currentTimeMillis(); mEmergencyCallHelper.setLastOutgoingEmergencyCallPAH(mPhoneAccountHandle); mEmergencyCallHelper.setLastOutgoingEmergencyCallTimestampMillis(currentTimeMillis); // Verify that ECBM is active on mPhoneAccountHandle. assertTrue(mEmergencyCallHelper.isLastOutgoingEmergencyCallPAH(mPhoneAccountHandle)); assertFalse(mEmergencyCallHelper.isLastOutgoingEmergencyCallPAH(dummyHandle)); // Expire ECBM and verify that mPhoneAccountHandle is no longer supported for ECBM. mEmergencyCallHelper.setLastOutgoingEmergencyCallTimestampMillis(currentTimeMillis/2); assertFalse(mEmergencyCallHelper.isLastOutgoingEmergencyCallPAH(mPhoneAccountHandle)); } }