Skip to content

Instantly share code, notes, and snippets.

View ThomasGorisse's full-sized avatar

Thomas Gorisse ThomasGorisse

View GitHub Profile
texView.lifecycleScope.launchWhenCreated { // Launch on Dispatchers.Main
val data = withContext(Dispatchers.IO) { // Dispatchers.IO for background task
loadNetworkData() // Suspend function making http calls
}
texView.text = data // Dispatchers.Main for UI change
}
textView.lifecycleScope.launchWhenCreated {
while (isActive) {
view.text = "${System.currentTimeMillis()}" // Dispatchers.Main
withContext(Dispatchers.IO) { // Dispatchers.IO for waiting in background
delay(1000) // Wait 1 second
}
}
}
val lifecycle = findViewById(R.id.frameLayout).lifecycle
// Or
val imageView = ImageView(context)
imageView.lifecycleScope.launchWhenCreated {
(imageView.parent as View).isVisible = true
loadSlideShow(imageView.width, imageView.height)
}
view.doOnResume {
startWelcomeAnimation(view)
}
view.doOnPause {
stopWelcomeAnimation(view)
}
view.doOnDestroy {
removeListener(view)
}
class WebView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0,
defStyleRes: Int = 0
) : WebView(context, attrs, defStyleAttr, defStyleRes) {
init {
this.isScrollContainer = false
this.isNestedScrollingEnabled = false
    fun startVideoRecord(fragment: MainFragment) {
        verifyPermission(activity = fragment.activity,
            permissions = listOf(
                Manifest.permission.RECORD_AUDIO
            ),
            fallBack = {
                fragment.isRecording = false
            },
            success = {
                fragment.isRecording = true
package io.github.sceneview.components
import android.animation.ObjectAnimator
import com.google.android.filament.*
import com.google.ar.sceneform.rendering.*
import dev.romainguy.kotlin.math.*
import io.github.sceneview.*
import io.github.sceneview.animation.TransformAnimator
import io.github.sceneview.gesture.*
import io.github.sceneview.math.*
package io.github.sceneview.components
import com.google.android.filament.EntityInstance
import com.google.android.filament.LightManager
import dev.romainguy.kotlin.math.Quaternion
import io.github.sceneview.light.*
import io.github.sceneview.math.Direction
import io.github.sceneview.math.Position
import io.github.sceneview.utils.Color
import io.github.sceneview.utils.toColor
@ThomasGorisse
ThomasGorisse / SceneView.kt
Created September 5, 2022 12:30
SceneView 1.0.0
package io.github.sceneview
import android.annotation.SuppressLint
import android.content.Context
import android.content.res.AssetManager
import android.graphics.PixelFormat
import android.graphics.drawable.ColorDrawable
import android.media.MediaRecorder
import android.os.Handler
import android.os.Looper