@ -7,14 +7,6 @@ import android.util.Log
import android.view.Gravity
import android.view.View
import android.view.WindowManager
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.LifecycleRegistry
import androidx.lifecycle.ViewTreeLifecycleOwner
import androidx.savedstate.SavedStateRegistry
import androidx.savedstate.SavedStateRegistryController
import androidx.savedstate.SavedStateRegistryOwner
import androidx.savedstate.ViewTreeSavedStateRegistryOwner
import androidx.compose.animation.*
import androidx.compose.animation.core.*
import androidx.compose.foundation.gestures.detectDragGestures
@ -38,37 +30,6 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.quillstudios.pokegoalshelper.ui.theme.PokeGoalsHelperTheme
/ * *
* Simple lifecycle owner for ComposeView in overlay context
* /
class OverlayLifecycleOwner : LifecycleOwner , SavedStateRegistryOwner {
private val lifecycleRegistry : LifecycleRegistry = LifecycleRegistry ( this )
private val savedStateRegistryController = SavedStateRegistryController . create ( this )
init {
savedStateRegistryController . performRestore ( null )
lifecycleRegistry . currentState = Lifecycle . State . CREATED
}
fun onCreate ( ) {
lifecycleRegistry . currentState = Lifecycle . State . CREATED
}
fun onStart ( ) {
lifecycleRegistry . currentState = Lifecycle . State . STARTED
}
fun onResume ( ) {
lifecycleRegistry . currentState = Lifecycle . State . RESUMED
}
fun onDestroy ( ) {
lifecycleRegistry . currentState = Lifecycle . State . DESTROYED
}
override val lifecycle : Lifecycle = lifecycleRegistry
override val savedStateRegistry : SavedStateRegistry = savedStateRegistryController . savedStateRegistry
}
/ * *
* True floating overlay using WindowManager + ComposeView .
@ -88,7 +49,6 @@ class FloatingComposeOverlay(
private var windowManager : WindowManager ? = null
private var overlayView : ComposeView ? = null
private var isShowing = false
private val lifecycleOwner = OverlayLifecycleOwner ( )
// Mutable state for Compose
private var fabPosition = mutableStateOf ( Offset . Zero )
@ -98,9 +58,6 @@ class FloatingComposeOverlay(
try {
windowManager = context . getSystemService ( Context . WINDOW_SERVICE ) as WindowManager
lifecycleOwner . onCreate ( )
lifecycleOwner . onStart ( )
lifecycleOwner . onResume ( )
createOverlayView ( )
isShowing = true
Log . d ( TAG , " ✅ Floating Compose overlay shown " )
@ -113,7 +70,6 @@ class FloatingComposeOverlay(
if ( !is Showing ) return
try {
lifecycleOwner . onDestroy ( )
overlayView ?. let { windowManager ?. removeView ( it ) }
overlayView = null
windowManager = null
@ -126,10 +82,6 @@ class FloatingComposeOverlay(
private fun createOverlayView ( ) {
overlayView = ComposeView ( context ) . apply {
// Set lifecycle owner for ComposeView
ViewTreeLifecycleOwner . set ( this , lifecycleOwner )
ViewTreeSavedStateRegistryOwner . set ( this , lifecycleOwner )
setContent {
PokeGoalsHelperTheme {
FloatingFABContent (