private static PhoneAccountHandle createHandle(String packageName, String id) { return new PhoneAccountHandle(new ComponentName(packageName, "component_class_name"), id); } }
@Test @Config(minSdk = O) public void shouldCreateForPhoneAccountHandle() { PhoneAccountHandle phoneAccountHandle = new PhoneAccountHandle( new ComponentName(ApplicationProvider.getApplicationContext(), Object.class), "handle"); TelephonyManager mockTelephonyManager = mock(TelephonyManager.class); shadowOf(telephonyManager) .setTelephonyManagerForHandle(phoneAccountHandle, mockTelephonyManager); assertEquals( mockTelephonyManager, telephonyManager.createForPhoneAccountHandle(phoneAccountHandle)); }
@Test @Config(minSdk = O) // The setter on the real manager was added in O public void shouldSetVoicemailRingtoneUri() { PhoneAccountHandle phoneAccountHandle = new PhoneAccountHandle( new ComponentName(ApplicationProvider.getApplicationContext(), Object.class), "handle"); Uri ringtoneUri = Uri.fromParts("file", "ringtone.mp3", /* fragment = */ null); // Note: Using the real manager to set, instead of the shadow. telephonyManager.setVoicemailRingtoneUri(phoneAccountHandle, ringtoneUri); assertEquals(ringtoneUri, telephonyManager.getVoicemailRingtoneUri(phoneAccountHandle)); }
@Test @Config(minSdk = N) public void shouldGiveVoiceVibrationEnabled() { PhoneAccountHandle phoneAccountHandle = new PhoneAccountHandle( new ComponentName(ApplicationProvider.getApplicationContext(), Object.class), "handle"); shadowOf(telephonyManager).setVoicemailVibrationEnabled(phoneAccountHandle, true); assertTrue(telephonyManager.isVoicemailVibrationEnabled(phoneAccountHandle)); }
@Test @Config(minSdk = N) public void shouldGiveVoicemailRingtoneUri() { PhoneAccountHandle phoneAccountHandle = new PhoneAccountHandle( new ComponentName(ApplicationProvider.getApplicationContext(), Object.class), "handle"); Uri ringtoneUri = Uri.fromParts("file", "ringtone.mp3", /* fragment = */ null); shadowOf(telephonyManager).setVoicemailRingtoneUri(phoneAccountHandle, ringtoneUri); assertEquals(ringtoneUri, telephonyManager.getVoicemailRingtoneUri(phoneAccountHandle)); }
/** * Compose PhoneAccount object from component name and account id. */ @Nullable public static PhoneAccountHandle getAccount(@Nullable String componentString, @Nullable String accountId) { if (TextUtils.isEmpty(componentString) || TextUtils.isEmpty(accountId)) { return null; } final ComponentName componentName = ComponentName.unflattenFromString(componentString); if (componentName == null) { return null; } return new PhoneAccountHandle(componentName, accountId); }
accountHandle = new PhoneAccountHandle( ComponentName.unflattenFromString(callToNotify.accountComponentName), callToNotify.accountId);