add support for requesting permissions from mods or Geode

This commit is contained in:
dankmeme01 committed 2024-01-26 21:30:30 +01:00
1 parent cf8b1edbe2
commit 433d6a0f46
3 files changed
+31

No files matched your search

@@ -45,11 +45,17 @@ class GeometryDashActivity : AppCompatActivity(), Cocos2dxHelper.Cocos2dxHelperL
private var mHasWindowFocus = false
private var mReceiver: BroadcastReceiver? = null
companion object {
var instance: GeometryDashActivity? = null
}
override fun onCreate(savedInstanceState: Bundle?) {
setupUIState()
super.onCreate(savedInstanceState)
instance = this
// return back to main if Geometry Dash isn't found
if (!LaunchUtils.isGeometryDashInstalled(packageManager)) {
returnToMain()
@@ -313,6 +319,7 @@ class GeometryDashActivity : AppCompatActivity(), Cocos2dxHelper.Cocos2dxHelperL
super.onDestroy()
unregisterReceivers()
FMOD.close()
instance = null
}
private fun resumeGame() {
@@ -5,13 +5,17 @@ import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.provider.DocumentsContract
import android.util.Log
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.documentfile.provider.DocumentFile
import com.geode.launcher.GeometryDashActivity
import com.geode.launcher.activityresult.GeodeOpenFileActivityResult
import com.geode.launcher.activityresult.GeodeOpenFilesActivityResult
import com.geode.launcher.activityresult.GeodeSaveFileActivityResult
@@ -249,4 +253,23 @@ object GeodeUtils {
fun isGeodeUri(uri: Uri): Boolean {
return "com.geode.launcher.user" == uri.authority
}
@JvmStatic
fun getPermissionStatus(permission: String): Boolean {
return ContextCompat.checkSelfPermission(
GeometryDashActivity.instance?.applicationContext ?: return false,
permission
) == PackageManager.PERMISSION_GRANTED
}
@JvmStatic
fun requestPermission(permission: String) {
if (!getPermissionStatus(permission)) {
ActivityCompat.requestPermissions(
GeometryDashActivity.instance!!,
arrayOf(permission),
12345
)
}
}
}