@RequiresApi(JELLY_BEAN_MR1) @Override public void sendStickyOrderedBroadcastAsUser(final Intent originalIntent, final UserHandle user, final BroadcastReceiver resultReceiver, final Handler scheduler, final int initialCode, final String initialData, final Bundle initialExtras) { final Intent intent = applyRedirect(originalIntent); mCondom.proceedBroadcast(intent, new CondomCore.WrappedProcedure() { @Override public void run() { CondomContext.super.sendStickyOrderedBroadcastAsUser(intent, user, resultReceiver, scheduler, initialCode, initialData, initialExtras); }}); }
@Override public void sendBroadcast(final Intent originalIntent) { final Intent intent = applyRedirect(originalIntent); mCondom.proceedBroadcast(intent, new CondomCore.WrappedProcedure() { @Override public void run() { CondomContext.super.sendBroadcast(intent); }}); }
@Override public void sendOrderedBroadcast(final Intent originalIntent, final String receiverPermission, final BroadcastReceiver resultReceiver, final Handler scheduler, final int initialCode, final String initialData, final Bundle initialExtras) { final Intent intent = applyRedirect(originalIntent); mCondom.proceedBroadcast(intent, new CondomCore.WrappedProcedure() { @Override public void run() { CondomContext.super.sendOrderedBroadcast(intent, receiverPermission, resultReceiver, scheduler, initialCode, initialData, initialExtras); }}); }
@RequiresApi(JELLY_BEAN_MR1) @Override public void sendStickyBroadcastAsUser(final Intent originalIntent, final UserHandle user) { final Intent intent = applyRedirect(originalIntent); mCondom.proceedBroadcast(intent, new CondomCore.WrappedProcedure() { @Override public void run() { CondomContext.super.sendStickyBroadcastAsUser(intent, user); }}); }
@RequiresApi(JELLY_BEAN_MR1) @Override public void sendOrderedBroadcastAsUser(final Intent originalIntent, final UserHandle user, final String receiverPermission, final BroadcastReceiver resultReceiver, final Handler scheduler, final int initialCode, final String initialData, final Bundle initialExtras) { final Intent intent = applyRedirect(originalIntent); mCondom.proceedBroadcast(intent, new CondomCore.WrappedProcedure() { @Override public void run() { CondomContext.super.sendOrderedBroadcastAsUser(intent, user, receiverPermission, resultReceiver, scheduler, initialCode, initialData, initialExtras); }}); }
@Override public void sendStickyBroadcast(final Intent originalIntent) { final Intent intent = applyRedirect(originalIntent); mCondom.proceedBroadcast(intent, new CondomCore.WrappedProcedure() { @Override public void run() { CondomContext.super.sendStickyBroadcast(intent); }}); }
@Override public void sendStickyOrderedBroadcast(final Intent originalIntent, final BroadcastReceiver resultReceiver, final Handler scheduler, final int initialCode, final String initialData, final Bundle initialExtras) { final Intent intent = applyRedirect(originalIntent); mCondom.proceedBroadcast(intent, new CondomCore.WrappedProcedure() { @Override public void run() { CondomContext.super.sendStickyOrderedBroadcast(intent, resultReceiver, scheduler, initialCode, initialData, initialExtras); }}); }
@Override public void sendBroadcast(final Intent originalIntent, final String receiverPermission) { final Intent intent = applyRedirect(originalIntent); mCondom.proceedBroadcast(intent, new CondomCore.WrappedProcedure() { @Override public void run() { CondomContext.super.sendBroadcast(intent, receiverPermission); }}); }
@RequiresApi(JELLY_BEAN_MR1) @Override public void sendBroadcastAsUser(final Intent originalIntent, final UserHandle user) { final Intent intent = applyRedirect(originalIntent); mCondom.proceedBroadcast(intent, new CondomCore.WrappedProcedure() { @Override public void run() { CondomContext.super.sendBroadcastAsUser(intent, user); }}); }
@RequiresApi(JELLY_BEAN_MR1) @Override public void sendBroadcastAsUser(final Intent originalIntent, final UserHandle user, final String receiverPermission) { final Intent intent = applyRedirect(originalIntent); mCondom.proceedBroadcast(intent, new CondomCore.WrappedProcedure() { @Override public void run() { CondomContext.super.sendBroadcastAsUser(intent, user, receiverPermission); }}); }
@Override public void sendOrderedBroadcast(final Intent originalIntent, final String receiverPermission) { final Intent intent = applyRedirect(originalIntent); mCondom.proceedBroadcast(intent, new CondomCore.WrappedProcedure() { @Override public void run() { CondomContext.super.sendOrderedBroadcast(intent, receiverPermission); }}); }
private static Intent applyRedirect (Intent original) { if (COMPONENT_REDIRECT == null) return original; if (original.getComponent() != null) { original.setComponent(applyRedirect(original.getComponent())); return original; } return original; }
@Override public boolean bindService(final Intent originalIntent, final ServiceConnection conn, final int flags) { final Intent intent = applyRedirect(originalIntent); final boolean result = mCondom.proceed(OutboundType.BIND_SERVICE, intent, Boolean.FALSE, new CondomCore.WrappedValueProcedure<Boolean>() { @Override public Boolean proceed() { return CondomContext.super.bindService(intent, conn, flags); }}); if (result) mCondom.logIfOutboundPass(TAG, intent, CondomCore.getTargetPackage(intent), CondomCore.CondomEvent.BIND_PASS); return result; }
@Override public ComponentName startService(final Intent originalIntent) { final Intent intent = applyRedirect(originalIntent); final ComponentName component = mCondom.proceed(OutboundType.START_SERVICE, intent, null, new CondomCore.WrappedValueProcedure<ComponentName>() { @Override public ComponentName proceed() { return CondomContext.super.startService(intent); }}); if (component != null) mCondom.logIfOutboundPass(TAG, intent, component.getPackageName(), CondomCore.CondomEvent.START_PASS); return component; }