mirror of
https://github.com/geode-sdk/android-launcher.git
synced 2026-10-21 16:32:39 +00:00
drop component use
This commit is contained in:
1 file changed
+54
-36
@@ -9,14 +9,11 @@ import android.os.Build
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Environment
|
import android.os.Environment
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.FrameLayout
|
import android.widget.FrameLayout
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.activity.compose.setContent
|
import androidx.core.view.WindowCompat
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
|
||||||
import androidx.compose.ui.Modifier
|
|
||||||
import androidx.compose.ui.viewinterop.AndroidView
|
|
||||||
import androidx.core.view.ViewCompat
|
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
import androidx.core.view.WindowInsetsControllerCompat
|
import androidx.core.view.WindowInsetsControllerCompat
|
||||||
import com.customRobTop.BaseRobTopActivity
|
import com.customRobTop.BaseRobTopActivity
|
||||||
@@ -30,7 +27,7 @@ import org.cocos2dx.lib.Cocos2dxRenderer
|
|||||||
import org.fmod.FMOD
|
import org.fmod.FMOD
|
||||||
|
|
||||||
|
|
||||||
class GeometryDashActivity : ComponentActivity(), Cocos2dxHelper.Cocos2dxHelperListener {
|
class GeometryDashActivity : AppCompatActivity(), Cocos2dxHelper.Cocos2dxHelperListener {
|
||||||
private var mGLSurfaceView: Cocos2dxGLSurfaceView? = null
|
private var mGLSurfaceView: Cocos2dxGLSurfaceView? = null
|
||||||
private val sTag = GeometryDashActivity::class.simpleName
|
private val sTag = GeometryDashActivity::class.simpleName
|
||||||
private var mIsRunning = false
|
private var mIsRunning = false
|
||||||
@@ -81,10 +78,21 @@ class GeometryDashActivity : ComponentActivity(), Cocos2dxHelper.Cocos2dxHelperL
|
|||||||
|
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
setContent {
|
setContentView(createView())
|
||||||
AndroidView(
|
|
||||||
modifier = Modifier.fillMaxSize(),
|
Cocos2dxHelper.init(this, this)
|
||||||
factory = {
|
|
||||||
|
JniToCpp.setupHSSAssets(
|
||||||
|
gdPackageInfo.applicationInfo.sourceDir,
|
||||||
|
Environment.getExternalStorageDirectory().absolutePath
|
||||||
|
)
|
||||||
|
Cocos2dxHelper.nativeSetApkPath(gdPackageInfo.applicationInfo.sourceDir)
|
||||||
|
|
||||||
|
BaseRobTopActivity.setCurrentActivity(this)
|
||||||
|
registerReceiver()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun createView(): FrameLayout {
|
||||||
val frameLayoutParams = ViewGroup.LayoutParams(-1, -1)
|
val frameLayoutParams = ViewGroup.LayoutParams(-1, -1)
|
||||||
val frameLayout = FrameLayout(this)
|
val frameLayout = FrameLayout(this)
|
||||||
frameLayout.layoutParams = frameLayoutParams
|
frameLayout.layoutParams = frameLayoutParams
|
||||||
@@ -110,21 +118,7 @@ class GeometryDashActivity : ComponentActivity(), Cocos2dxHelper.Cocos2dxHelperL
|
|||||||
editText.inputType = 145
|
editText.inputType = 145
|
||||||
glSurfaceView.cocos2dxEditText = editText
|
glSurfaceView.cocos2dxEditText = editText
|
||||||
|
|
||||||
frameLayout
|
return frameLayout
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
Cocos2dxHelper.init(this, this)
|
|
||||||
|
|
||||||
JniToCpp.setupHSSAssets(
|
|
||||||
gdPackageInfo.applicationInfo.sourceDir,
|
|
||||||
Environment.getExternalStorageDirectory().absolutePath
|
|
||||||
)
|
|
||||||
Cocos2dxHelper.nativeSetApkPath(gdPackageInfo.applicationInfo.sourceDir)
|
|
||||||
|
|
||||||
BaseRobTopActivity.setCurrentActivity(this)
|
|
||||||
registerReceiver()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupUIState() {
|
private fun setupUIState() {
|
||||||
@@ -134,16 +128,37 @@ class GeometryDashActivity : ComponentActivity(), Cocos2dxHelper.Cocos2dxHelperL
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun hideSystemUi() {
|
private fun hideSystemUi() {
|
||||||
val windowInsetsController =
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
|
||||||
ViewCompat.getWindowInsetsController(window.decorView) ?: return
|
// window compat is dumb!!
|
||||||
|
setLegacyVisibility()
|
||||||
|
window.decorView.setOnSystemUiVisibilityChangeListener { visibility ->
|
||||||
|
if (visibility and View.SYSTEM_UI_FLAG_FULLSCREEN == 0) {
|
||||||
|
setLegacyVisibility()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
windowInsetsController.systemBarsBehavior =
|
WindowCompat.getInsetsController(window, window.decorView).apply {
|
||||||
|
systemBarsBehavior =
|
||||||
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
||||||
windowInsetsController.hide(WindowInsetsCompat.Type.systemBars())
|
hide(WindowInsetsCompat.Type.systemBars())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setLegacyVisibility() {
|
||||||
|
// setDecorFitsSystemWindows doesn't hide anything
|
||||||
|
window.decorView.systemUiVisibility =
|
||||||
|
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
|
||||||
|
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
|
||||||
|
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
|
||||||
|
View.SYSTEM_UI_FLAG_FULLSCREEN or
|
||||||
|
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
|
||||||
|
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
|
unregisterReceivers()
|
||||||
FMOD.close()
|
FMOD.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,10 +193,7 @@ class GeometryDashActivity : ComponentActivity(), Cocos2dxHelper.Cocos2dxHelperL
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun registerReceiver() {
|
private fun registerReceiver() {
|
||||||
if (mReceiver != null) {
|
unregisterReceivers()
|
||||||
unregisterReceiver(mReceiver)
|
|
||||||
mReceiver = null
|
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
val filter = IntentFilter(Intent.ACTION_SCREEN_ON)
|
val filter = IntentFilter(Intent.ACTION_SCREEN_ON)
|
||||||
filter.addAction(Intent.ACTION_SCREEN_OFF)
|
filter.addAction(Intent.ACTION_SCREEN_OFF)
|
||||||
@@ -192,6 +204,13 @@ class GeometryDashActivity : ComponentActivity(), Cocos2dxHelper.Cocos2dxHelperL
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun unregisterReceivers() {
|
||||||
|
if (mReceiver != null) {
|
||||||
|
unregisterReceiver(mReceiver)
|
||||||
|
mReceiver = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun onWindowFocusChanged(hasWindowFocus: Boolean) {
|
override fun onWindowFocusChanged(hasWindowFocus: Boolean) {
|
||||||
super.onWindowFocusChanged(hasWindowFocus)
|
super.onWindowFocusChanged(hasWindowFocus)
|
||||||
mHasWindowFocus = hasWindowFocus
|
mHasWindowFocus = hasWindowFocus
|
||||||
@@ -201,7 +220,7 @@ class GeometryDashActivity : ComponentActivity(), Cocos2dxHelper.Cocos2dxHelperL
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun runOnGLThread(runnable: Runnable) {
|
override fun runOnGLThread(runnable: Runnable) {
|
||||||
TODO("Not yet implemented")
|
mGLSurfaceView?.queueEvent(runnable)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun showDialog(title: String, message: String) {
|
override fun showDialog(title: String, message: String) {
|
||||||
@@ -219,7 +238,6 @@ class GeometryDashActivity : ComponentActivity(), Cocos2dxHelper.Cocos2dxHelperL
|
|||||||
TODO("Not yet implemented")
|
TODO("Not yet implemented")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun isAndroidEmulator(): Boolean {
|
private fun isAndroidEmulator(): Boolean {
|
||||||
Log.d(sTag, "model=" + Build.MODEL)
|
Log.d(sTag, "model=" + Build.MODEL)
|
||||||
val product = Build.PRODUCT
|
val product = Build.PRODUCT
|
||||||
|
|||||||
Reference in new issue
Block a user