Added overflow menu for reboot

This commit is contained in:
Viktor De Pasquale
2020-02-01 14:41:22 +01:00
committed by John Wu
parent c35d020731
commit 1d831d65f3
6 changed files with 73 additions and 1 deletions

View File

@@ -136,6 +136,15 @@ class HomeViewModel(
.subscribeK { Navigation.install().publish() }
.add()
fun rebootPressed(menuItemId: Int) = when (menuItemId) {
R.id.action_reboot_normal -> reboot()
R.id.action_reboot_bootloader -> reboot("bootloader")
R.id.action_reboot_download -> reboot("download")
R.id.action_reboot_edl -> reboot("edl")
R.id.action_reboot_recovery -> Shell.su("/system/bin/reboot recovery").submit()
else -> Unit
}
fun toggle(kof: KObservableField<Boolean>) = kof.toggle()
fun hideNotice() {

View File

@@ -5,9 +5,11 @@ import android.animation.ValueAnimator
import android.graphics.Paint
import android.graphics.drawable.Drawable
import android.os.Build
import android.view.ContextThemeWrapper
import android.view.View
import android.view.ViewAnimationUtils
import android.view.ViewGroup
import android.widget.PopupMenu
import android.widget.ProgressBar
import android.widget.TextView
import androidx.annotation.ColorInt
@@ -460,4 +462,26 @@ fun TextView.setStrikeThroughEnabled(useStrikeThrough: Boolean) {
} else {
paintFlags and Paint.STRIKE_THRU_TEXT_FLAG.inv()
}
}
interface OnPopupMenuItemClickListener {
fun onMenuItemClick(itemId: Int)
}
@BindingAdapter("popupMenu", "popupMenuOnClickListener", requireAll = false)
fun View.setPopupMenu(popupMenu: Int, listener: OnPopupMenuItemClickListener) {
tag = tag as? PopupMenu ?: let {
val themeWrapper = ContextThemeWrapper(context, R.style.Foundation_PopupMenu)
PopupMenu(themeWrapper, this)
}
setOnClickListener {
(tag as PopupMenu).apply {
menuInflater.inflate(popupMenu, menu)
setOnMenuItemClickListener {
listener.onMenuItemClick(it.itemId)
true
}
show()
}
}
}