Skip to content

Instantly share code, notes, and snippets.

View mahdiPourkazemi's full-sized avatar

Mahdi Pourkazemi mahdiPourkazemi

View GitHub Profile
@mahdiPourkazemi
mahdiPourkazemi / timer.py
Last active April 16, 2024 14:08
python decorator usage example
import time
import functools
def timer(func):
"""print the runtime of the decorated function"""
functools.wraps(func)
def timer_wraper(*args,**kargs):
#get time before call func
start_time = time.perf_counter()
#call func
value = func(*args,**kargs)
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private val activityViewModel: ShearedViewModel by viewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
class FragmentViewBindingDelegate<T : ViewBinding>(
val fragment: Fragment,
val viewBindingFactory: (View) -> T
) : ReadOnlyProperty<Fragment, T> {
private var binding: T? = null
init {
fragment.lifecycle.addObserver(object : DefaultLifecycleObserver {
val viewLifecycleOwnerLiveDataObserver =
@mahdiPourkazemi
mahdiPourkazemi / gist:5b30e934e1bb48d0636a4f9d5aa6b222
Created May 23, 2022 18:22
remove bracket hell for using flow
//PourkazemiMahdi
fun <T> StateFlow<T>.collectIt(lifecycleOwner: LifecycleOwner, function: (T) -> Unit) {
lifecycleOwner.lifecycleScope.launch {
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED){
collect {
function.invoke(it)
}
}
}
}
### Keybase proof
I hereby claim:
* I am mahdipourkazemi on github.
* I am mahdipoori (https://keybase.io/mahdipoori) on keybase.
* I have a public key ASBiXDkQwDrOO7xTQ3cQQyQUMy-3NJcY1ItyO4J2O3zBZQo
To claim this, I am signing this object: