@Implementation(minSdk = LOLLIPOP_MR1) @HiddenApi public void clearAccountsForPackage(String packageName) { Set<PhoneAccountHandle> phoneAccountHandlesInPackage = new HashSet<>(); for (PhoneAccountHandle handle : accounts.keySet()) { if (handle.getComponentName().getPackageName().equals(packageName)) { phoneAccountHandlesInPackage.add(handle); } } for (PhoneAccountHandle handle : phoneAccountHandlesInPackage) { accounts.remove(handle); } }
private static PhoneAccountHandle createHandle(String packageName, String id) { return new PhoneAccountHandle(new ComponentName(packageName, "component_class_name"), id); } }
@Test public void getSimCallManager() { PhoneAccountHandle handle = createHandle("id"); shadowOf(telecomService).setSimCallManager(handle); assertThat(telecomService.getConnectionManager().getId()).isEqualTo("id"); }
accountHandle = new PhoneAccountHandle( ComponentName.unflattenFromString(callToNotify.accountComponentName), callToNotify.accountId); if (accountHandle.getComponentName() != null) { Log.v(TAG, "PhoneAccountHandle.ComponentInfo:" + accountHandle.getComponentName()); } else { Log.i(TAG, "PhoneAccountHandle.ComponentInfo: null");
@Implementation @HiddenApi public List<PhoneAccountHandle> getPhoneAccountsForPackage() { Context context = ReflectionHelpers.getField(realObject, "mContext"); List<PhoneAccountHandle> results = new ArrayList<>(); for (PhoneAccountHandle handle : accounts.keySet()) { if (handle.getComponentName().getPackageName().equals(context.getPackageName())) { results.add(handle); } } return results; }
@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 = LOLLIPOP_MR1) public void clearAccountsForPackage() { PhoneAccountHandle accountHandle1 = createHandle("a.package", "id1"); telecomService.registerPhoneAccount(PhoneAccount.builder(accountHandle1, "another_package") .build()); PhoneAccountHandle accountHandle2 = createHandle("some.other.package", "id2"); telecomService.registerPhoneAccount(PhoneAccount.builder(accountHandle2, "another_package") .build()); telecomService.clearAccountsForPackage(accountHandle1.getComponentName().getPackageName()); assertThat(telecomService.getPhoneAccount(accountHandle1)).isNull(); assertThat(telecomService.getPhoneAccount(accountHandle2)).isNotNull(); }
@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)); }
@Implementation(minSdk = LOLLIPOP_MR1) public void clearAccountsForPackage(String packageName) { Set<PhoneAccountHandle> phoneAccountHandlesInPackage = new HashSet<>(); for (PhoneAccountHandle handle : accounts.keySet()) { if (handle.getComponentName().getPackageName().equals(packageName)) { phoneAccountHandlesInPackage.add(handle); } } for (PhoneAccountHandle handle : phoneAccountHandlesInPackage) { accounts.remove(handle); } }
@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)); }
@Implementation public void clearAccountsForPackage(String packageName) { Set<PhoneAccountHandle> phoneAccountHandlesInPackage = new HashSet<>(); for (PhoneAccountHandle handle : accounts.keySet()) { if (handle.getComponentName().getPackageName().equals(packageName)) { phoneAccountHandlesInPackage.add(handle); } } for (PhoneAccountHandle handle : phoneAccountHandlesInPackage) { accounts.remove(handle); } }
@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)); }
@Implementation(minSdk = LOLLIPOP_MR1) public void clearAccountsForPackage(String packageName) { Set<PhoneAccountHandle> phoneAccountHandlesInPackage = new HashSet<>(); for (PhoneAccountHandle handle : accounts.keySet()) { if (handle.getComponentName().getPackageName().equals(packageName)) { phoneAccountHandlesInPackage.add(handle); } } for (PhoneAccountHandle handle : phoneAccountHandlesInPackage) { accounts.remove(handle); } }
/** * 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); }
@Implementation public List<PhoneAccountHandle> getPhoneAccountsForPackage() { Context context = ReflectionHelpers.getField(realObject, "mContext"); List<PhoneAccountHandle> results = new LinkedList<>(); for (PhoneAccountHandle handle : accounts.keySet()) { if (handle.getComponentName().getPackageName().equals(context.getPackageName())) { results.add(handle); } } return results; }
@Implementation public List<PhoneAccountHandle> getPhoneAccountsForPackage() { Context context = ReflectionHelpers.getField(realObject, "mContext"); List<PhoneAccountHandle> results = new LinkedList<>(); for (PhoneAccountHandle handle : accounts.keySet()) { if (handle.getComponentName().getPackageName().equals(context.getPackageName())) { results.add(handle); } } return results; }
@Implementation public List<PhoneAccountHandle> getPhoneAccountsForPackage() { Context context = ReflectionHelpers.getField(realObject, "mContext"); List<PhoneAccountHandle> results = new LinkedList<>(); for (PhoneAccountHandle handle : accounts.keySet()) { if (handle.getComponentName().getPackageName().equals(context.getPackageName())) { results.add(handle); } } return results; }
@Implementation(minSdk = LOLLIPOP_MR1) @HiddenApi public void clearAccountsForPackage(String packageName) { Set<PhoneAccountHandle> phoneAccountHandlesInPackage = new HashSet<>(); for (PhoneAccountHandle handle : accounts.keySet()) { if (handle.getComponentName().getPackageName().equals(packageName)) { phoneAccountHandlesInPackage.add(handle); } } for (PhoneAccountHandle handle : phoneAccountHandlesInPackage) { accounts.remove(handle); } }
@Implementation @HiddenApi public List<PhoneAccountHandle> getPhoneAccountsForPackage() { Context context = ReflectionHelpers.getField(realObject, "mContext"); List<PhoneAccountHandle> results = new ArrayList<>(); for (PhoneAccountHandle handle : accounts.keySet()) { if (handle.getComponentName().getPackageName().equals(context.getPackageName())) { results.add(handle); } } return results; }