Skip to content

Instantly share code, notes, and snippets.

View prokash-sarkar's full-sized avatar
🎯
Focusing

Prokash Sarkar prokash-sarkar

🎯
Focusing
View GitHub Profile
open class BaseApplication : DaggerApplication() {
override fun applicationInjector(): AndroidInjector<out DaggerApplication> {
return initializeDaggerComponent()
}
open fun initializeDaggerComponent(): AppComponent {
val component: AppComponent = DaggerAppComponent.factory()
.create(this)
component.inject(this)
return component
}
@Singleton
@Component(
modules = [
AndroidInjectionModule::class, NetworkModule::class,
AppModule::class, AppModuleBinds::class,
ViewModelBuilderModule::class, ActivityBuildersModule::class
]
)
interface AppComponent : AndroidInjector<DaggerApplication> {
@Component.Factory
@Module
class NetworkModule {
@Singleton
@Provides
fun provideHttpLoggingInterceptor(): HttpLoggingInterceptor {
return HttpLoggingInterceptor()
.setLevel(HttpLoggingInterceptor.Level.BODY)
}
@Singleton
@Provides
@Module
interface AppModuleBinds {
@Singleton
@Binds
fun bindRepository(defaultDataRepository: DefaultDataRepository): DataRepository
}
@Module
class AppModule {
@Singleton
@Provides
fun provideTasksRemoteDataSource(
apiService: ApiService
): DataSource {
return RemoteDataSource(apiService)
}
}
@Module()
interface ActivityBuildersModule {
@ActivityScope
@ContributesAndroidInjector(modules = [LoginModule::class, LoginFragmentsBuilderModule::class])
fun contributeMainActivity(): MainActivity
}
@prokash-sarkar
prokash-sarkar / ConfirmationDialogFragment.kt
Created February 6, 2021 13:25
A sample app to demonstrate the process of showing camera preview in web view
package com.example.myapplication
import android.app.AlertDialog
import android.app.Dialog
import android.content.Context
import android.os.Bundle
import android.text.TextUtils
import androidx.fragment.app.DialogFragment
/**
def setupAndroidReporting() {
// 1
tasks.withType(Test) {
// Whether or not classes without source location should be instrumented
jacoco.includeNoLocationClasses true
}
// Grab all build types and product flavors
// 2
def buildTypes = android.buildTypes.collect { type ->
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'jacoco'
apply from: "$project.rootDir/tools/script-jacoco.gradle"
android {
// Code omitted for brevity
apply plugin: 'java-library'
apply plugin: 'kotlin'
apply plugin: 'kotlin-kapt'
apply plugin: 'jacoco'
apply from: "$project.rootDir/tools/script-jacoco.gradle"
dependencies {
// Code omitted for brevity
}