Skip to content

Instantly share code, notes, and snippets.

if (featureManager.isNewInvoiceEnabled) {
// ...
if (featureManager.isStripeEnbled) {
// Show stripe with new design
} else {
// Show old payment with new design
}
// ...
class SplashScreen {
private val featureManager: FeatureManager
private fun startHomeScreen() {
if (featureManager.homeExperiementEnabled) {
startActivity(Intent(this, HomeExperimentScreen::class.java))
} else {
startActivity(Intent(this, HomeScreen::class.java))
}
}
@nongdenchet
nongdenchet / RemyndDetailsFragmentTest.kt
Created November 25, 2019 14:40
RemyndDetailsFragmentTest#testCreateNewRemind
@Test
fun testCreateNewRemind() {
mockData()
launchFragmentInContainer<RemyndDetailsFragment>(
factory = factory,
themeResId = R.style.AppTheme
)
onView(withId(R.id.edtTitle)).perform(
typeText("Go to school"),
@nongdenchet
nongdenchet / RemyndDetailsFragmentTest.kt
Created November 25, 2019 14:30
RemyndDetailsFragmentTest
@RunWith(AndroidJUnit4::class)
class RemyndDetailsFragmentTest {
private lateinit var factory: FragmentFactory
private lateinit var db: RemyndDB
private lateinit var remyndDao: RemyndDao
@Mock
private lateinit var scheduler: AlarmScheduler
@Before
@nongdenchet
nongdenchet / MockFragmentFactoryImpl.kt
Created November 25, 2019 14:26
MockFragmentFactoryImpl
class MockFragmentFactoryImpl(
private val dependency: RemyndDetailsDependency
) : FragmentFactory() {
override fun instantiate(classLoader: ClassLoader, className: String): Fragment {
return when (loadFragmentClass(classLoader, className)) {
RemyndDetailsFragment::class.java -> RemyndDetailsFragment(dependency)
else -> super.instantiate(classLoader, className)
}
}
@nongdenchet
nongdenchet / RemyndDetailsComponent.kt
Created November 25, 2019 13:58
RemyndDetailsComponent
@RemyndDetailsScope
@Component(modules = [RemyndDetailsModule::class], dependencies = [RemyndDetailsDependency::class])
internal interface RemyndDetailsComponent {
@Component.Factory
interface Factory {
fun create(
@BindsInstance fragment: RemyndDetailsFragment,
dependency: RemyndDetailsDependency
): RemyndDetailsComponent
@nongdenchet
nongdenchet / RemyndDetailsFragment.kt
Created November 25, 2019 13:53
RemyndDetailsFragment
class RemyndDetailsFragment(private val dependency: RemyndDetailsDependency) : Fragment()
@nongdenchet
nongdenchet / RemyndDetailsDependency.kt
Last active November 25, 2019 14:02
RemyndDetailsDependency
interface RemyndDetailsDependency {
fun remyndDao(): RemyndDao
fun resourceProvider(): ResourcesProvider
fun alarmScheduler(): AlarmScheduler
}