Skip to content

Instantly share code, notes, and snippets.

/.*youtube.*/$client=~WorkLaptop|~Desktop|~MainPhone
||www.googleadservices.com^
import com.something.view.LovelyComponent
import dagger.Module
import dagger.android.ContributesAndroidInjector
@Module
internal abstract class CustomViewDiModule {
@ContributesAndroidInjector
abstract fun bindLovelyComponentView(): LovelyComponent
import android.content.Context
import android.util.AttributeSet
import androidx.lifecycle.LiveData
import androidx.lifecycle.Observer
import com.something.response.Response
import com.something.instant.R
import com.something.extension.removeAndObserve
import com.something.view.CardViewWithLifecycle
import com.something.vm.CustomViewModel
@ghahramani
ghahramani / CardViewWithLifecyle.kt
Created February 10, 2020 00:01
Custom view lifecycle
import android.content.Context
import android.util.AttributeSet
import androidx.cardview.widget.CardView
import com.something.ViewModelUtil
import com.something.ComponentAccessor
import com.something.ComponentAccessorImpl
import com.something.ViewModelAccessor
import dagger.Lazy
import javax.inject.Inject
@ghahramani
ghahramani / CardViewWithLifecyle.kt
Created February 10, 2020 00:01
Custom view lifecycle
import android.content.Context
import android.util.AttributeSet
import androidx.cardview.widget.CardView
import com.something.ViewModelUtil
import com.something.ComponentAccessor
import com.something.ComponentAccessorImpl
import com.something.ViewModelAccessor
import dagger.Lazy
import javax.inject.Inject
@ghahramani
ghahramani / ViewModelUtil.kt
Created February 9, 2020 23:37
Custom view lifecycle
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelProviders
import javax.inject.Inject
import kotlin.reflect.KClass
class ViewModelUtil @Inject constructor(private val viewModelFactory: ViewModelProvider.Factory) {
@ghahramani
ghahramani / ViewModelAccessor.kt
Last active February 10, 2020 13:10
Custom view lifecycle
import androidx.fragment.app.FragmentActivity
import com.something.ViewModelUtil
import com.something.BaseViewModel
import dagger.Lazy
import kotlin.reflect.KClass
interface ViewModelAccessor {
val viewModelUtil: Lazy<ViewModelUtil>
@ghahramani
ghahramani / ComponentAccessorImpl.kt
Last active March 27, 2020 12:20
Custom view lifecycle
import android.annotation.SuppressLint
import android.content.Context
import android.content.ContextWrapper
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.LifecycleRegistry
import androidx.lifecycle.OnLifecycleEvent
import dagger.android.DaggerApplication
import io.reactivex.disposables.CompositeDisposable
@ghahramani
ghahramani / ComponentAccessor.kt
Last active February 9, 2020 22:26
Custom view lifecycle
import androidx.annotation.CallSuper
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.LifecycleRegistry
import dagger.android.DaggerApplication
import io.reactivex.disposables.Disposable
interface ComponentAccessor : LifecycleOwner, LifecycleObserver {
@ghahramani
ghahramani / BaseGenericReactiveMongoRepository.kt
Created January 22, 2020 00:41
Spring data extending default methods
@NoRepositoryBean
interface BaseGenericReactiveMongoRepository<T> : ReactiveMongoRepository<T, String> {
fun patch(id: String, fields: Map<String, Any>): Mono<T>
}