You've already forked Magisk
mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-09-06 06:36:58 +00:00
41 lines
1.6 KiB
Kotlin
41 lines
1.6 KiB
Kotlin
package com.topjohnwu.magisk.events
|
|
|
|
import android.os.Build
|
|
import android.os.PowerManager
|
|
import android.view.ContextThemeWrapper
|
|
import android.view.MenuItem
|
|
import android.widget.PopupMenu
|
|
import androidx.core.content.getSystemService
|
|
import com.topjohnwu.magisk.R
|
|
import com.topjohnwu.magisk.core.base.BaseActivity
|
|
import com.topjohnwu.superuser.Shell
|
|
import com.topjohnwu.magisk.ktx.reboot as systemReboot
|
|
|
|
object RebootEvent {
|
|
|
|
private fun reboot(item: MenuItem): Boolean {
|
|
when (item.itemId) {
|
|
R.id.action_reboot_normal -> systemReboot()
|
|
R.id.action_reboot_userspace -> systemReboot("userspace")
|
|
R.id.action_reboot_bootloader -> systemReboot("bootloader")
|
|
R.id.action_reboot_download -> systemReboot("download")
|
|
R.id.action_reboot_edl -> systemReboot("edl")
|
|
R.id.action_reboot_recovery -> Shell.su("/system/bin/reboot recovery").submit()
|
|
else -> Unit
|
|
}
|
|
return true
|
|
}
|
|
|
|
fun inflateMenu(activity: BaseActivity): PopupMenu {
|
|
val themeWrapper = ContextThemeWrapper(activity, R.style.Foundation_PopupMenu)
|
|
val menu = PopupMenu(themeWrapper, activity.findViewById(R.id.action_reboot))
|
|
activity.menuInflater.inflate(R.menu.menu_reboot, menu.menu)
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R &&
|
|
activity.getSystemService<PowerManager>()?.isRebootingUserspaceSupported == true)
|
|
menu.menu.findItem(R.id.action_reboot_userspace).isVisible = true
|
|
menu.setOnMenuItemClickListener(::reboot)
|
|
return menu
|
|
}
|
|
|
|
}
|