package ru.ltst.u2020mvp.data; import android.content.Intent; import com.f2prateek.rx.preferences.Preference; import ru.ltst.u2020mvp.ui.ExternalIntentActivity; /** * An {@link IntentFactory} implementation that wraps all {@code Intent}s with a debug action, which * launches an activity that allows you to inspect the content. */ public final class DebugIntentFactory implements IntentFactory { private final IntentFactory realIntentFactory; private final boolean isMockMode; private final Preference<Boolean> captureIntents; public DebugIntentFactory(IntentFactory realIntentFactory, boolean isMockMode, Preference<Boolean> captureIntents) { this.realIntentFactory = realIntentFactory; this.isMockMode = isMockMode; this.captureIntents = captureIntents; } @Override public Intent createUrlIntent(String url) { Intent baseIntent = realIntentFactory.createUrlIntent(url); if (!isMockMode || !captureIntents.get()) { return baseIntent; } else { return ExternalIntentActivity.createIntent(baseIntent); } } }