Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3612aa75 authored by Vlad Sandu's avatar Vlad Sandu Committed by Android (Google) Code Review
Browse files

Merge "[SettingsLib] Add support for enabling icons in MenuPreference &...

Merge "[SettingsLib] Add support for enabling icons in MenuPreference & OrderMenuPreference" into main
parents 7307cfaf c3887561
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -19,5 +19,6 @@
    <declare-styleable name="MenuPreference">
        <attr name="menu" format="reference" />
        <attr name="number" format="integer" />
        <attr name="showIconsInPopupMenu" format="boolean" />
    </declare-styleable>
</resources>
 No newline at end of file
+9 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settingslib.widget

import android.content.Context
import android.os.Build
import android.view.Gravity
import android.view.MenuItem
import android.view.View
@@ -34,10 +35,12 @@ interface MenuHandler {
    var menuItemClickListener: OnMenuItemClickListener?
    var menuButton: MaterialButton?
    var preference: Preference?
    var showIconsInPopupMenu: Boolean

    interface OnMenuItemClickListener {
        fun onMenuItemClick(item: MenuItem, pref: Preference): Boolean
    }

    /**
     * Shows the popup menu anchored to the specified view.
     *
@@ -51,6 +54,12 @@ interface MenuHandler {
                    setOnMenuItemClickListener { item ->
                        menuItemClickListener?.onMenuItemClick(item, preference!!) ?: false
                    }

                    // setForceShowIcon() requires minimum Android 10
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
                        setForceShowIcon(showIconsInPopupMenu)
                    }

                    show()
                }
        }
+3 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ class MenuPreference @JvmOverloads constructor(
    override var menuItemClickListener: MenuHandler.OnMenuItemClickListener? = null
    override var menuButton: MaterialButton? = null
    override var preference: Preference? = this
    override var showIconsInPopupMenu: Boolean = false

    init {
        layoutResource =
@@ -46,6 +47,8 @@ class MenuPreference @JvmOverloads constructor(
        if (attrs != null) {
            context.withStyledAttributes(attrs, R.styleable.MenuPreference) {
                menuResId = getResourceId(R.styleable.MenuPreference_menu, 0)
                showIconsInPopupMenu =
                    getBoolean(R.styleable.MenuPreference_showIconsInPopupMenu, false)
            }
        }
    }
+3 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ class OrderMenuPreference @JvmOverloads constructor(
    override var menuItemClickListener: MenuHandler.OnMenuItemClickListener? = null
    override var menuButton: MaterialButton? = null
    override var preference: Preference? = this
    override var showIconsInPopupMenu: Boolean = false

    var number: Int = 0
        set(value) {
@@ -66,6 +67,8 @@ class OrderMenuPreference @JvmOverloads constructor(
            context.withStyledAttributes(attrs, R.styleable.MenuPreference) {
                menuResId = getResourceId(R.styleable.MenuPreference_menu, 0)
                number = getInt(R.styleable.MenuPreference_number, 0)
                showIconsInPopupMenu =
                    getBoolean(R.styleable.MenuPreference_showIconsInPopupMenu, false)
            }
        }
    }