package com.kiwii.controlpanel import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.navigation.fragment.NavHostFragment import androidx.navigation.ui.setupActionBarWithNavController import com.kiwii.bridge.KiwiiRuntimeClientBridge import com.kiwii.controlpanel.databinding.ActivityMainBinding import com.kiwii.controlpanel.logging.LogEntry import com.kiwii.controlpanel.logging.SessionLogger class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) val navHostFragment = supportFragmentManager .findFragmentById(R.id.nav_host_fragment) as NavHostFragment val navController = navHostFragment.navController setupActionBarWithNavController(navController) autoBind() } private fun autoBind() { val result = KiwiiRuntimeClientBridge.bind(this) SessionLogger.log(LogEntry( timestamp = System.currentTimeMillis(), component = null, action = "auto_bind", params = null, result = "bind=$result", isStateChange = true )) } override fun onDestroy() { super.onDestroy() if (KiwiiRuntimeClientBridge.isBound()) { KiwiiRuntimeClientBridge.unbind() SessionLogger.log(LogEntry( timestamp = System.currentTimeMillis(), component = null, action = "auto_unbind", params = null, result = "Activity destroyed", isStateChange = true )) } } override fun onSupportNavigateUp(): Boolean { val navHostFragment = supportFragmentManager .findFragmentById(R.id.nav_host_fragment) as NavHostFragment return navHostFragment.navController.navigateUp() || super.onSupportNavigateUp() } }