mirror of
https://github.com/geode-sdk/android-launcher.git
synced 2026-10-21 16:32:39 +00:00
ime and input changes
This commit is contained in:
7 files changed
+248
-63
No files matched your search
@@ -2,7 +2,11 @@ package com.customRobTop
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
import android.content.*
|
||||
import android.content.ActivityNotFoundException
|
||||
import android.content.ClipData
|
||||
import android.content.ClipboardManager
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.net.ConnectivityManager
|
||||
import android.net.NetworkCapabilities
|
||||
import android.os.Build
|
||||
@@ -13,14 +17,18 @@ import com.geode.launcher.R
|
||||
import org.cocos2dx.lib.Cocos2dxGLSurfaceView.Companion.closeIMEKeyboard
|
||||
import org.cocos2dx.lib.Cocos2dxGLSurfaceView.Companion.openIMEKeyboard
|
||||
import java.lang.ref.WeakReference
|
||||
import java.util.*
|
||||
|
||||
import java.util.UUID
|
||||
|
||||
@Suppress("unused", "UNUSED_PARAMETER")
|
||||
object BaseRobTopActivity {
|
||||
const val KEYBOARD_INPUT_MULTILINE = 1
|
||||
const val KEYBOARD_INPUT_NUMERIC = 4
|
||||
const val KEYBOARD_INPUT_PASSWORD = 2
|
||||
|
||||
private var isLoaded = false
|
||||
var blockBackButton = false
|
||||
private var keyboardActive = false
|
||||
var curKeyboardInputFlags = 0
|
||||
|
||||
var isPaused = false
|
||||
|
||||
@@ -87,6 +95,18 @@ object BaseRobTopActivity {
|
||||
}
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getClipboardString(): String {
|
||||
me.get()?.run {
|
||||
val manager = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
val clip = manager.primaryClip
|
||||
if (clip != null && clip.itemCount > 0) {
|
||||
return clip.getItemAt(0).coerceToText(this).toString()
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun sendMail(subject: String, body: String, to: String) {
|
||||
me.get()?.runOnUiThread {
|
||||
@@ -264,4 +284,9 @@ object BaseRobTopActivity {
|
||||
level = DeprecationLevel.HIDDEN
|
||||
)
|
||||
fun logEvent(event: String) {}
|
||||
|
||||
@JvmStatic
|
||||
fun setKeyboardInputFlags(flags: Int) {
|
||||
curKeyboardInputFlags = flags
|
||||
}
|
||||
}
|
||||
@@ -171,7 +171,8 @@ class GeometryDashActivity : AppCompatActivity(), Cocos2dxHelper.Cocos2dxHelperL
|
||||
tryLoadLibrary(gdPackageInfo, Constants.FMOD_LIB_NAME)
|
||||
tryLoadLibrary(gdPackageInfo, Constants.COCOS_LIB_NAME)
|
||||
|
||||
if (GamePackageUtils.getGameVersionCode(packageManager) >= 39L) {
|
||||
val gameVersionCode = GamePackageUtils.getGameVersionCode(packageManager)
|
||||
if (gameVersionCode >= 39L) {
|
||||
// this fix requires geode v3, which is 2.206+
|
||||
// there is a short period in which 2.206 users will still have geode v2, but whatever. ig
|
||||
LauncherFix.enableExceptionsRenaming()
|
||||
@@ -182,6 +183,9 @@ class GeometryDashActivity : AppCompatActivity(), Cocos2dxHelper.Cocos2dxHelperL
|
||||
loadInternalMods()
|
||||
|
||||
val baseView = createView()
|
||||
if (gameVersionCode >= 42L) {
|
||||
mGLSurfaceView?.sendNewCocosEvents = true
|
||||
}
|
||||
|
||||
if (!GeodeUtils.handleSafeArea && Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA) {
|
||||
val frameLayoutParams = ViewGroup.LayoutParams(
|
||||
@@ -205,12 +209,22 @@ class GeometryDashActivity : AppCompatActivity(), Cocos2dxHelper.Cocos2dxHelperL
|
||||
left = 0, top = 0, right = 0, bottom = 0
|
||||
)
|
||||
}
|
||||
|
||||
Cocos2dxGLSurfaceView.onKeyboardInsets(insets)
|
||||
|
||||
WindowInsets.CONSUMED
|
||||
}
|
||||
|
||||
frameLayout.addView(baseView)
|
||||
setContentView(frameLayout)
|
||||
} else {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||
baseView.setOnApplyWindowInsetsListener { view, insets ->
|
||||
Cocos2dxGLSurfaceView.onKeyboardInsets(insets)
|
||||
return@setOnApplyWindowInsetsListener view.onApplyWindowInsets(insets)
|
||||
}
|
||||
}
|
||||
|
||||
setContentView(baseView)
|
||||
}
|
||||
|
||||
@@ -497,6 +511,10 @@ class GeometryDashActivity : AppCompatActivity(), Cocos2dxHelper.Cocos2dxHelperL
|
||||
editText.inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
|
||||
glSurfaceView.cocos2dxEditText = editText
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
glSurfaceView.defaultFocusHighlightEnabled = false
|
||||
}
|
||||
|
||||
return frameLayout
|
||||
}
|
||||
|
||||
|
||||
@@ -53,6 +53,7 @@ object GamePackageUtils {
|
||||
39L to "2.206",
|
||||
40L to "2.2074", // ok
|
||||
41L to "2.2081",
|
||||
42L to "2.209",
|
||||
)
|
||||
|
||||
/**
|
||||
|
||||
@@ -794,7 +794,7 @@ object GeodeUtils {
|
||||
|
||||
external fun internalKeyEvent(timestamp: Long, deviceId: Int, eventSource: Int, keyCode: Int, modifiers: Int, isDown: Boolean, repeatCount: Int)
|
||||
external fun internalTouchEvent(timestamp: Long, deviceId: Int, eventSource: Int, eventType: Int, ids: IntArray, xs: FloatArray, ys: FloatArray)
|
||||
external fun internalScrollEvent(timestamp: Long, deviceId: Int, eventSource: Int, scrollX: Float, scrollY: Float)
|
||||
external fun internalScrollEvent(timestamp: Long, deviceId: Int, eventSource: Int, scrollX: Float, scrollY: Float, mouseX: Float, mouseY: Float)
|
||||
external fun internalJoystickEvent(timestamp: Long, deviceId: Int, eventSource: Int, leftX: FloatArray, leftY: FloatArray, rightX: FloatArray, rightY: FloatArray, hatX: FloatArray, hatY: FloatArray, leftTrigger: FloatArray, rightTrigger: FloatArray)
|
||||
|
||||
external fun inputDeviceAdded(deviceId: Int)
|
||||
|
||||
Reference in new issue
Block a user