ответвлён от rabbitude/rabbitude-launcher
180 строки
6,9 КиБ
Kotlin
180 строки
6,9 КиБ
Kotlin
![]() |
package de.rabbitude.launcher
|
||
|
|
||
|
import android.os.Build
|
||
|
import android.os.Bundle
|
||
|
import androidx.activity.ComponentActivity
|
||
|
import androidx.activity.compose.setContent
|
||
|
import androidx.compose.foundation.layout.fillMaxSize
|
||
|
import androidx.compose.material3.MaterialTheme
|
||
|
import androidx.compose.material3.Surface
|
||
|
import androidx.compose.material3.Text
|
||
|
import androidx.compose.runtime.Composable
|
||
|
import androidx.compose.ui.Modifier
|
||
|
import androidx.compose.ui.tooling.preview.Preview
|
||
|
import androidx.core.app.ActivityCompat
|
||
|
import androidx.core.content.ContextCompat
|
||
|
import de.rabbitude.launcher.ui.init.InitActivity
|
||
|
import de.rabbitude.launcher.ui.theme.RabbitudeLauncherTheme
|
||
|
import de.rabbitude.launcher.utils.CameraController
|
||
|
import de.rabbitude.launcher.utils.PRIVACY_ROTATION
|
||
|
import de.rabbitude.launcher.utils.WindowUtils
|
||
|
|
||
|
|
||
|
class MainActivity : ComponentActivity() {
|
||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||
|
super.onCreate(savedInstanceState)
|
||
|
window.addFlags(16)
|
||
|
overridePendingTransition(0, 0)
|
||
|
WindowUtils.setupR1Window(window)
|
||
|
|
||
|
if (CameraController.isNeedRotate(true, true)) {
|
||
|
CameraController.rotate(PRIVACY_ROTATION)
|
||
|
}
|
||
|
|
||
|
setContent {
|
||
|
RabbitudeLauncherTheme {
|
||
|
// A surface container using the 'background' color from the theme
|
||
|
Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) {
|
||
|
Greeting("Android")
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
override fun onResume() {
|
||
|
super.onResume()
|
||
|
checkPermissions()
|
||
|
InitActivity.launch(this)
|
||
|
}
|
||
|
|
||
|
fun checkPermissions() {
|
||
|
if (Build.VERSION.SDK_INT >= 33) {
|
||
|
val mainActivity = this
|
||
|
if (ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.READ_MEDIA_IMAGES"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.READ_MEDIA_VIDEO"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.READ_MEDIA_AUDIO"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.RECORD_AUDIO"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.BLUETOOTH"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.BLUETOOTH_CONNECT"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.BLUETOOTH_ADMIN"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.BLUETOOTH_SCAN"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.WRITE_SETTINGS"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.ACCESS_COARSE_LOCATION"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.ACCESS_FINE_LOCATION"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.NEARBY_WIFI_DEVICES"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.BLUETOOTH_PRIVILEGED"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.NETWORK_SETTINGS"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.NETWORK_STACK"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity,
|
||
|
"android.permission.NETWORK_SETUP_WIZARD"
|
||
|
) == 0
|
||
|
) {
|
||
|
return
|
||
|
}
|
||
|
ActivityCompat.requestPermissions(
|
||
|
this,
|
||
|
arrayOf(
|
||
|
"android.permission.READ_MEDIA_IMAGES",
|
||
|
"android.permission.READ_MEDIA_VIDEO",
|
||
|
"android.permission.READ_MEDIA_AUDIO",
|
||
|
"android.permission.RECORD_AUDIO",
|
||
|
"android.permission.BLUETOOTH",
|
||
|
"android.permission.BLUETOOTH_CONNECT",
|
||
|
"android.permission.BLUETOOTH_ADMIN",
|
||
|
"android.permission.BLUETOOTH_SCAN",
|
||
|
"android.permission.ACCESS_COARSE_LOCATION",
|
||
|
"android.permission.ACCESS_FINE_LOCATION",
|
||
|
"android.permission.NEARBY_WIFI_DEVICES",
|
||
|
"android.permission.BLUETOOTH_PRIVILEGED",
|
||
|
"android.permission.NETWORK_STACK",
|
||
|
"android.permission.NETWORK_SETTINGS",
|
||
|
"android.permission.NETWORK_SETUP_WIZARD"
|
||
|
),
|
||
|
1
|
||
|
)
|
||
|
return
|
||
|
}
|
||
|
val mainActivity2 = this
|
||
|
if (ContextCompat.checkSelfPermission(
|
||
|
mainActivity2,
|
||
|
"android.permission.READ_EXTERNAL_STORAGE"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity2,
|
||
|
"android.permission.WRITE_EXTERNAL_STORAGE"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity2,
|
||
|
"android.permission.RECORD_AUDIO"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity2,
|
||
|
"android.permission.ACCESS_COARSE_LOCATION"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(
|
||
|
mainActivity2,
|
||
|
"android.permission.ACCESS_FINE_LOCATION"
|
||
|
) == 0 && ContextCompat.checkSelfPermission(mainActivity2, "android.permission.NEARBY_WIFI_DEVICES") == 0
|
||
|
) {
|
||
|
return
|
||
|
}
|
||
|
ActivityCompat.requestPermissions(
|
||
|
this,
|
||
|
arrayOf(
|
||
|
"android.permission.READ_EXTERNAL_STORAGE",
|
||
|
"android.permission.WRITE_EXTERNAL_STORAGE",
|
||
|
"android.permission.RECORD_AUDIO",
|
||
|
"android.permission.RECORD_AUDIO",
|
||
|
"android.permission.ACCESS_COARSE_LOCATION",
|
||
|
"android.permission.ACCESS_FINE_LOCATION",
|
||
|
"android.permission.NEARBY_WIFI_DEVICES"
|
||
|
),
|
||
|
1
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Composable
|
||
|
fun Greeting(name: String, modifier: Modifier = Modifier) {
|
||
|
Text(
|
||
|
text = "Hello $name!",
|
||
|
modifier = modifier
|
||
|
)
|
||
|
}
|
||
|
|
||
|
@Preview(showBackground = true)
|
||
|
@Composable
|
||
|
fun GreetingPreview() {
|
||
|
RabbitudeLauncherTheme {
|
||
|
Greeting("Android")
|
||
|
}
|
||
|
}
|
||
|
|