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

Commit eb52aa2d authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

Remove tuner icon from settings button

This removes a two-way call to system_server in the main thread. The
only way to enable the tuner right now is through adb and it's largely
not used, so removing this indicator is not a big loss.

Fixes: 207257090
Test: atest FooterActionsControllerTest
Change-Id: If03c697f97a6c155122be98e369da66d2617069b
parent 444b42ef
Loading
Loading
Loading
Loading
+0 −10
Original line number Original line Diff line number Diff line
@@ -77,16 +77,6 @@
            android:src="@drawable/ic_settings"
            android:src="@drawable/ic_settings"
            android:tint="?android:attr/textColorPrimary" />
            android:tint="?android:attr/textColorPrimary" />


        <com.android.systemui.statusbar.AlphaOptimizedImageView
            android:id="@+id/tuner_icon"
            android:layout_width="8dp"
            android:layout_height="8dp"
            android:layout_gravity="center_horizontal|bottom"
            android:layout_marginBottom="@dimen/qs_footer_icon_padding"
            android:src="@drawable/tuner"
            android:tint="?android:attr/textColorTertiary"
            android:visibility="invisible" />

    </com.android.systemui.statusbar.AlphaOptimizedFrameLayout>
    </com.android.systemui.statusbar.AlphaOptimizedFrameLayout>


</com.android.systemui.qs.FooterActionsView>
</com.android.systemui.qs.FooterActionsView>
 No newline at end of file
+0 −10
Original line number Original line Diff line number Diff line
@@ -78,16 +78,6 @@
                android:src="@drawable/ic_settings"
                android:src="@drawable/ic_settings"
                android:tint="?android:attr/textColorPrimary" />
                android:tint="?android:attr/textColorPrimary" />


            <com.android.systemui.statusbar.AlphaOptimizedImageView
                android:id="@+id/tuner_icon"
                android:layout_width="8dp"
                android:layout_height="8dp"
                android:layout_gravity="center_horizontal|bottom"
                android:layout_marginBottom="@dimen/qs_footer_icon_padding"
                android:src="@drawable/tuner"
                android:tint="?android:attr/textColorTertiary"
                android:visibility="invisible" />

        </com.android.systemui.statusbar.AlphaOptimizedFrameLayout>
        </com.android.systemui.statusbar.AlphaOptimizedFrameLayout>


        <com.android.systemui.statusbar.AlphaOptimizedImageView
        <com.android.systemui.statusbar.AlphaOptimizedImageView
+3 −23
Original line number Original line Diff line number Diff line
@@ -24,7 +24,6 @@ import android.provider.Settings.Global.USER_SWITCHER_ENABLED
import android.view.View
import android.view.View
import android.view.ViewGroup
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.LinearLayout
import android.widget.Toast
import androidx.annotation.VisibleForTesting
import androidx.annotation.VisibleForTesting
import com.android.internal.jank.InteractionJankMonitor
import com.android.internal.jank.InteractionJankMonitor
import com.android.internal.logging.MetricsLogger
import com.android.internal.logging.MetricsLogger
@@ -46,7 +45,6 @@ import com.android.systemui.statusbar.phone.SettingsButton
import com.android.systemui.statusbar.policy.DeviceProvisionedController
import com.android.systemui.statusbar.policy.DeviceProvisionedController
import com.android.systemui.statusbar.policy.UserInfoController
import com.android.systemui.statusbar.policy.UserInfoController
import com.android.systemui.statusbar.policy.UserInfoController.OnUserInfoChangedListener
import com.android.systemui.statusbar.policy.UserInfoController.OnUserInfoChangedListener
import com.android.systemui.tuner.TunerService
import com.android.systemui.util.DualHeightHorizontalLinearLayout
import com.android.systemui.util.DualHeightHorizontalLinearLayout
import com.android.systemui.util.ViewController
import com.android.systemui.util.ViewController
import com.android.systemui.util.settings.GlobalSettings
import com.android.systemui.util.settings.GlobalSettings
@@ -71,7 +69,6 @@ internal class FooterActionsController @Inject constructor(
    private val fgsManagerFooterController: QSFgsManagerFooter,
    private val fgsManagerFooterController: QSFgsManagerFooter,
    private val falsingManager: FalsingManager,
    private val falsingManager: FalsingManager,
    private val metricsLogger: MetricsLogger,
    private val metricsLogger: MetricsLogger,
    private val tunerService: TunerService,
    private val globalActionsDialog: GlobalActionsDialogLite,
    private val globalActionsDialog: GlobalActionsDialogLite,
    private val uiEventLogger: UiEventLogger,
    private val uiEventLogger: UiEventLogger,
    @Named(PM_LITE_ENABLED) private val showPMLiteButton: Boolean,
    @Named(PM_LITE_ENABLED) private val showPMLiteButton: Boolean,
@@ -131,22 +128,7 @@ internal class FooterActionsController @Inject constructor(
                return@OnClickListener
                return@OnClickListener
            }
            }
            metricsLogger.action(MetricsProto.MetricsEvent.ACTION_QS_EXPANDED_SETTINGS_LAUNCH)
            metricsLogger.action(MetricsProto.MetricsEvent.ACTION_QS_EXPANDED_SETTINGS_LAUNCH)
            if (settingsButton.isTunerClick) {
                activityStarter.postQSRunnableDismissingKeyguard {
                    if (isTunerEnabled()) {
                        tunerService.showResetRequest {
                            // Relaunch settings so that the tuner disappears.
            startSettingsActivity()
            startSettingsActivity()
                        }
                    } else {
                        Toast.makeText(context, R.string.tuner_toast, Toast.LENGTH_LONG).show()
                        tunerService.isTunerEnabled = true
                    }
                    startSettingsActivity()
                }
            } else {
                startSettingsActivity()
            }
        } else if (v === powerMenuLite) {
        } else if (v === powerMenuLite) {
            uiEventLogger.log(GlobalActionsDialogLite.GlobalActionsEvent.GA_OPEN_QS)
            uiEventLogger.log(GlobalActionsDialogLite.GlobalActionsEvent.GA_OPEN_QS)
            globalActionsDialog.showOrHideDialog(false, true, v)
            globalActionsDialog.showOrHideDialog(false, true, v)
@@ -228,7 +210,7 @@ internal class FooterActionsController @Inject constructor(
    }
    }


    private fun updateView() {
    private fun updateView() {
        mView.updateEverything(isTunerEnabled(), multiUserSwitchController.isMultiUserEnabled)
        mView.updateEverything(multiUserSwitchController.isMultiUserEnabled)
    }
    }


    override fun onViewDetached() {
    override fun onViewDetached() {
@@ -254,7 +236,7 @@ internal class FooterActionsController @Inject constructor(
    }
    }


    fun disable(state2: Int) {
    fun disable(state2: Int) {
        mView.disable(state2, isTunerEnabled(), multiUserSwitchController.isMultiUserEnabled)
        mView.disable(state2, multiUserSwitchController.isMultiUserEnabled)
    }
    }


    fun setExpansion(headerExpansionFraction: Float) {
    fun setExpansion(headerExpansionFraction: Float) {
@@ -275,6 +257,4 @@ internal class FooterActionsController @Inject constructor(
    fun setKeyguardShowing(showing: Boolean) {
    fun setKeyguardShowing(showing: Boolean) {
        setExpansion(lastExpansion)
        setExpansion(lastExpansion)
    }
    }

    private fun isTunerEnabled() = tunerService.isTunerEnabled
}
}
+2 −26
Original line number Original line Diff line number Diff line
@@ -17,7 +17,6 @@ package com.android.systemui.qs


import android.app.StatusBarManager
import android.app.StatusBarManager
import android.content.Context
import android.content.Context
import android.content.res.Configuration
import android.graphics.PorterDuff
import android.graphics.PorterDuff
import android.graphics.drawable.Drawable
import android.graphics.drawable.Drawable
import android.graphics.drawable.RippleDrawable
import android.graphics.drawable.RippleDrawable
@@ -42,7 +41,6 @@ class FooterActionsView(context: Context?, attrs: AttributeSet?) : LinearLayout(
    private lateinit var settingsButton: SettingsButton
    private lateinit var settingsButton: SettingsButton
    private lateinit var multiUserSwitch: MultiUserSwitch
    private lateinit var multiUserSwitch: MultiUserSwitch
    private lateinit var multiUserAvatar: ImageView
    private lateinit var multiUserAvatar: ImageView
    private lateinit var tunerIcon: View


    private var qsDisabled = false
    private var qsDisabled = false
    private var expansionAmount = 0f
    private var expansionAmount = 0f
@@ -53,50 +51,30 @@ class FooterActionsView(context: Context?, attrs: AttributeSet?) : LinearLayout(
        settingsContainer = findViewById(R.id.settings_button_container)
        settingsContainer = findViewById(R.id.settings_button_container)
        multiUserSwitch = findViewById(R.id.multi_user_switch)
        multiUserSwitch = findViewById(R.id.multi_user_switch)
        multiUserAvatar = multiUserSwitch.findViewById(R.id.multi_user_avatar)
        multiUserAvatar = multiUserSwitch.findViewById(R.id.multi_user_avatar)
        tunerIcon = requireViewById(R.id.tuner_icon)


        // RenderThread is doing more harm than good when touching the header (to expand quick
        // RenderThread is doing more harm than good when touching the header (to expand quick
        // settings), so disable it for this view
        // settings), so disable it for this view
        if (settingsButton.background is RippleDrawable) {
        if (settingsButton.background is RippleDrawable) {
            (settingsButton.background as RippleDrawable).setForceSoftware(true)
            (settingsButton.background as RippleDrawable).setForceSoftware(true)
        }
        }
        updateResources()
        importantForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_YES
        importantForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_YES
    }
    }


    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
        updateResources()
    }

    override fun onRtlPropertiesChanged(layoutDirection: Int) {
        super.onRtlPropertiesChanged(layoutDirection)
        updateResources()
    }

    private fun updateResources() {
        val tunerIconTranslation = mContext.resources
                .getDimensionPixelOffset(R.dimen.qs_footer_tuner_icon_translation).toFloat()
        tunerIcon.translationX = if (isLayoutRtl) (-tunerIconTranslation) else tunerIconTranslation
    }

    fun disable(
    fun disable(
        state2: Int,
        state2: Int,
        isTunerEnabled: Boolean,
        multiUserEnabled: Boolean
        multiUserEnabled: Boolean
    ) {
    ) {
        val disabled = state2 and StatusBarManager.DISABLE2_QUICK_SETTINGS != 0
        val disabled = state2 and StatusBarManager.DISABLE2_QUICK_SETTINGS != 0
        if (disabled == qsDisabled) return
        if (disabled == qsDisabled) return
        qsDisabled = disabled
        qsDisabled = disabled
        updateEverything(isTunerEnabled, multiUserEnabled)
        updateEverything(multiUserEnabled)
    }
    }


    fun updateEverything(
    fun updateEverything(
        isTunerEnabled: Boolean,
        multiUserEnabled: Boolean
        multiUserEnabled: Boolean
    ) {
    ) {
        post {
        post {
            updateVisibilities(isTunerEnabled, multiUserEnabled)
            updateVisibilities(multiUserEnabled)
            updateClickabilities()
            updateClickabilities()
            isClickable = false
            isClickable = false
        }
        }
@@ -108,11 +86,9 @@ class FooterActionsView(context: Context?, attrs: AttributeSet?) : LinearLayout(
    }
    }


    private fun updateVisibilities(
    private fun updateVisibilities(
        isTunerEnabled: Boolean,
        multiUserEnabled: Boolean
        multiUserEnabled: Boolean
    ) {
    ) {
        settingsContainer.visibility = if (qsDisabled) GONE else VISIBLE
        settingsContainer.visibility = if (qsDisabled) GONE else VISIBLE
        tunerIcon.visibility = if (isTunerEnabled) VISIBLE else INVISIBLE
        multiUserSwitch.visibility = if (multiUserEnabled) VISIBLE else GONE
        multiUserSwitch.visibility = if (multiUserEnabled) VISIBLE else GONE
        val isDemo = UserManager.isDeviceInDemoMode(context)
        val isDemo = UserManager.isDeviceInDemoMode(context)
        settingsButton.visibility = if (isDemo) INVISIBLE else VISIBLE
        settingsButton.visibility = if (isDemo) INVISIBLE else VISIBLE
+3 −0
Original line number Original line Diff line number Diff line
@@ -34,6 +34,8 @@ import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.ArraySet;


import androidx.annotation.WorkerThread;

import com.android.internal.util.ArrayUtils;
import com.android.internal.util.ArrayUtils;
import com.android.systemui.DejankUtils;
import com.android.systemui.DejankUtils;
import com.android.systemui.R;
import com.android.systemui.R;
@@ -287,6 +289,7 @@ public class TunerServiceImpl extends TunerService {
    }
    }


    @Override
    @Override
    @WorkerThread
    public boolean isTunerEnabled() {
    public boolean isTunerEnabled() {
        return mUserTracker.getUserContext().getPackageManager().getComponentEnabledSetting(
        return mUserTracker.getUserContext().getPackageManager().getComponentEnabledSetting(
                mTunerComponent) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
                mTunerComponent) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
Loading