fun updateStatusBar(activity: Activity, lightStatusBar: Boolean) =
    activity.window.apply {
        when {
            Build.VERSION.SDK_INT >= Build.VERSION_CODES.M -> {
                if (lightStatusBar) {
                    decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
                } else {
                    decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                }
                statusBarColor = ResourcesCompat.getColor(activity.resources, android.R.color.transparent, null)
            }
            Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP -> {
                decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                if (lightStatusBar) {
                    addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
                } else {
                    clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
                }
                statusBarColor = ResourcesCompat.getColor(activity.resources, android.R.color.transparent, null)
            }
            else -> {
                // nothing, just black status bar on API 19 & 20
            }
        }
    }