Loading packages/SettingsLib/src/com/android/settingslib/Utils.java +12 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.location.LocationManager; import android.media.AudioManager; import android.net.ConnectivityManager; import android.os.BatteryManager; import android.os.SystemProperties; Loading Loading @@ -372,4 +373,15 @@ public class Utils { isDefaultOn ? 1 : 0) != 0; } /** * get that {@link AudioManager#getMode()} is in ringing/call/communication(VoIP) status. */ public static boolean isAudioModeOngoingCall(Context context) { final AudioManager audioManager = context.getSystemService(AudioManager.class); final int audioMode = audioManager.getMode(); return audioMode == AudioManager.MODE_RINGTONE || audioMode == AudioManager.MODE_IN_CALL || audioMode == AudioManager.MODE_IN_COMMUNICATION; } } packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java +33 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.robolectric.Shadows.shadowOf; import android.app.ActivityManager; import android.content.ContentResolver; Loading @@ -33,6 +34,7 @@ import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.location.LocationManager; import android.media.AudioManager; import android.os.SystemProperties; import android.os.UserHandle; import android.provider.Settings; Loading @@ -50,6 +52,7 @@ import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; import org.robolectric.shadows.ShadowAudioManager; import org.robolectric.shadows.ShadowSettings; import java.util.HashMap; Loading @@ -67,6 +70,7 @@ public class UtilsTest { private static final String PERCENTAGE_50 = "50%"; private static final String PERCENTAGE_100 = "100%"; private ShadowAudioManager mShadowAudioManager; private Context mContext; @Mock private LocationManager mLocationManager; Loading @@ -77,6 +81,7 @@ public class UtilsTest { mContext = spy(RuntimeEnvironment.application); when(mContext.getSystemService(Context.LOCATION_SERVICE)).thenReturn(mLocationManager); ShadowSecure.reset(); mShadowAudioManager = shadowOf(mContext.getSystemService(AudioManager.class)); } @Test Loading Loading @@ -193,4 +198,32 @@ public class UtilsTest { // Do nothing } } @Test public void isAudioModeOngoingCall_modeInCommunication_returnTrue() { mShadowAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION); assertThat(Utils.isAudioModeOngoingCall(mContext)).isTrue(); } @Test public void isAudioModeOngoingCall_modeInCall_returnTrue() { mShadowAudioManager.setMode(AudioManager.MODE_IN_CALL); assertThat(Utils.isAudioModeOngoingCall(mContext)).isTrue(); } @Test public void isAudioModeOngoingCall_modeRingtone_returnTrue() { mShadowAudioManager.setMode(AudioManager.MODE_RINGTONE); assertThat(Utils.isAudioModeOngoingCall(mContext)).isTrue(); } @Test public void isAudioModeOngoingCall_modeNormal_returnFalse() { mShadowAudioManager.setMode(AudioManager.MODE_NORMAL); assertThat(Utils.isAudioModeOngoingCall(mContext)).isFalse(); } } Loading
packages/SettingsLib/src/com/android/settingslib/Utils.java +12 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.location.LocationManager; import android.media.AudioManager; import android.net.ConnectivityManager; import android.os.BatteryManager; import android.os.SystemProperties; Loading Loading @@ -372,4 +373,15 @@ public class Utils { isDefaultOn ? 1 : 0) != 0; } /** * get that {@link AudioManager#getMode()} is in ringing/call/communication(VoIP) status. */ public static boolean isAudioModeOngoingCall(Context context) { final AudioManager audioManager = context.getSystemService(AudioManager.class); final int audioMode = audioManager.getMode(); return audioMode == AudioManager.MODE_RINGTONE || audioMode == AudioManager.MODE_IN_CALL || audioMode == AudioManager.MODE_IN_COMMUNICATION; } }
packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java +33 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.robolectric.Shadows.shadowOf; import android.app.ActivityManager; import android.content.ContentResolver; Loading @@ -33,6 +34,7 @@ import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.location.LocationManager; import android.media.AudioManager; import android.os.SystemProperties; import android.os.UserHandle; import android.provider.Settings; Loading @@ -50,6 +52,7 @@ import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; import org.robolectric.shadows.ShadowAudioManager; import org.robolectric.shadows.ShadowSettings; import java.util.HashMap; Loading @@ -67,6 +70,7 @@ public class UtilsTest { private static final String PERCENTAGE_50 = "50%"; private static final String PERCENTAGE_100 = "100%"; private ShadowAudioManager mShadowAudioManager; private Context mContext; @Mock private LocationManager mLocationManager; Loading @@ -77,6 +81,7 @@ public class UtilsTest { mContext = spy(RuntimeEnvironment.application); when(mContext.getSystemService(Context.LOCATION_SERVICE)).thenReturn(mLocationManager); ShadowSecure.reset(); mShadowAudioManager = shadowOf(mContext.getSystemService(AudioManager.class)); } @Test Loading Loading @@ -193,4 +198,32 @@ public class UtilsTest { // Do nothing } } @Test public void isAudioModeOngoingCall_modeInCommunication_returnTrue() { mShadowAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION); assertThat(Utils.isAudioModeOngoingCall(mContext)).isTrue(); } @Test public void isAudioModeOngoingCall_modeInCall_returnTrue() { mShadowAudioManager.setMode(AudioManager.MODE_IN_CALL); assertThat(Utils.isAudioModeOngoingCall(mContext)).isTrue(); } @Test public void isAudioModeOngoingCall_modeRingtone_returnTrue() { mShadowAudioManager.setMode(AudioManager.MODE_RINGTONE); assertThat(Utils.isAudioModeOngoingCall(mContext)).isTrue(); } @Test public void isAudioModeOngoingCall_modeNormal_returnFalse() { mShadowAudioManager.setMode(AudioManager.MODE_NORMAL); assertThat(Utils.isAudioModeOngoingCall(mContext)).isFalse(); } }