Merge "Remove tuner icon from settings button"
This commit is contained in:
committed by
Android (Google) Code Review
commit
c20dbd6ceb
@@ -77,16 +77,6 @@
|
||||
android:src="@drawable/ic_settings"
|
||||
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.qs.FooterActionsView>
|
||||
@@ -78,16 +78,6 @@
|
||||
android:src="@drawable/ic_settings"
|
||||
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.AlphaOptimizedImageView
|
||||
|
||||
@@ -24,7 +24,6 @@ import android.provider.Settings.Global.USER_SWITCHER_ENABLED
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.VisibleForTesting
|
||||
import com.android.internal.jank.InteractionJankMonitor
|
||||
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.UserInfoController
|
||||
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.ViewController
|
||||
import com.android.systemui.util.settings.GlobalSettings
|
||||
@@ -71,7 +69,6 @@ internal class FooterActionsController @Inject constructor(
|
||||
private val fgsManagerFooterController: QSFgsManagerFooter,
|
||||
private val falsingManager: FalsingManager,
|
||||
private val metricsLogger: MetricsLogger,
|
||||
private val tunerService: TunerService,
|
||||
private val globalActionsDialog: GlobalActionsDialogLite,
|
||||
private val uiEventLogger: UiEventLogger,
|
||||
@Named(PM_LITE_ENABLED) private val showPMLiteButton: Boolean,
|
||||
@@ -131,22 +128,7 @@ internal class FooterActionsController @Inject constructor(
|
||||
return@OnClickListener
|
||||
}
|
||||
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()
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(context, R.string.tuner_toast, Toast.LENGTH_LONG).show()
|
||||
tunerService.isTunerEnabled = true
|
||||
}
|
||||
startSettingsActivity()
|
||||
}
|
||||
} else {
|
||||
startSettingsActivity()
|
||||
}
|
||||
startSettingsActivity()
|
||||
} else if (v === powerMenuLite) {
|
||||
uiEventLogger.log(GlobalActionsDialogLite.GlobalActionsEvent.GA_OPEN_QS)
|
||||
globalActionsDialog.showOrHideDialog(false, true, v)
|
||||
@@ -228,7 +210,7 @@ internal class FooterActionsController @Inject constructor(
|
||||
}
|
||||
|
||||
private fun updateView() {
|
||||
mView.updateEverything(isTunerEnabled(), multiUserSwitchController.isMultiUserEnabled)
|
||||
mView.updateEverything(multiUserSwitchController.isMultiUserEnabled)
|
||||
}
|
||||
|
||||
override fun onViewDetached() {
|
||||
@@ -254,7 +236,7 @@ internal class FooterActionsController @Inject constructor(
|
||||
}
|
||||
|
||||
fun disable(state2: Int) {
|
||||
mView.disable(state2, isTunerEnabled(), multiUserSwitchController.isMultiUserEnabled)
|
||||
mView.disable(state2, multiUserSwitchController.isMultiUserEnabled)
|
||||
}
|
||||
|
||||
fun setExpansion(headerExpansionFraction: Float) {
|
||||
@@ -275,6 +257,4 @@ internal class FooterActionsController @Inject constructor(
|
||||
fun setKeyguardShowing(showing: Boolean) {
|
||||
setExpansion(lastExpansion)
|
||||
}
|
||||
|
||||
private fun isTunerEnabled() = tunerService.isTunerEnabled
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@ package com.android.systemui.qs
|
||||
|
||||
import android.app.StatusBarManager
|
||||
import android.content.Context
|
||||
import android.content.res.Configuration
|
||||
import android.graphics.PorterDuff
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.graphics.drawable.RippleDrawable
|
||||
@@ -42,7 +41,6 @@ class FooterActionsView(context: Context?, attrs: AttributeSet?) : LinearLayout(
|
||||
private lateinit var settingsButton: SettingsButton
|
||||
private lateinit var multiUserSwitch: MultiUserSwitch
|
||||
private lateinit var multiUserAvatar: ImageView
|
||||
private lateinit var tunerIcon: View
|
||||
|
||||
private var qsDisabled = false
|
||||
private var expansionAmount = 0f
|
||||
@@ -53,50 +51,30 @@ class FooterActionsView(context: Context?, attrs: AttributeSet?) : LinearLayout(
|
||||
settingsContainer = findViewById(R.id.settings_button_container)
|
||||
multiUserSwitch = findViewById(R.id.multi_user_switch)
|
||||
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
|
||||
// settings), so disable it for this view
|
||||
if (settingsButton.background is RippleDrawable) {
|
||||
(settingsButton.background as RippleDrawable).setForceSoftware(true)
|
||||
}
|
||||
updateResources()
|
||||
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(
|
||||
state2: Int,
|
||||
isTunerEnabled: Boolean,
|
||||
multiUserEnabled: Boolean
|
||||
) {
|
||||
val disabled = state2 and StatusBarManager.DISABLE2_QUICK_SETTINGS != 0
|
||||
if (disabled == qsDisabled) return
|
||||
qsDisabled = disabled
|
||||
updateEverything(isTunerEnabled, multiUserEnabled)
|
||||
updateEverything(multiUserEnabled)
|
||||
}
|
||||
|
||||
fun updateEverything(
|
||||
isTunerEnabled: Boolean,
|
||||
multiUserEnabled: Boolean
|
||||
) {
|
||||
post {
|
||||
updateVisibilities(isTunerEnabled, multiUserEnabled)
|
||||
updateVisibilities(multiUserEnabled)
|
||||
updateClickabilities()
|
||||
isClickable = false
|
||||
}
|
||||
@@ -108,11 +86,9 @@ class FooterActionsView(context: Context?, attrs: AttributeSet?) : LinearLayout(
|
||||
}
|
||||
|
||||
private fun updateVisibilities(
|
||||
isTunerEnabled: Boolean,
|
||||
multiUserEnabled: Boolean
|
||||
) {
|
||||
settingsContainer.visibility = if (qsDisabled) GONE else VISIBLE
|
||||
tunerIcon.visibility = if (isTunerEnabled) VISIBLE else INVISIBLE
|
||||
multiUserSwitch.visibility = if (multiUserEnabled) VISIBLE else GONE
|
||||
val isDemo = UserManager.isDeviceInDemoMode(context)
|
||||
settingsButton.visibility = if (isDemo) INVISIBLE else VISIBLE
|
||||
|
||||
@@ -34,6 +34,8 @@ import android.text.TextUtils;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.ArraySet;
|
||||
|
||||
import androidx.annotation.WorkerThread;
|
||||
|
||||
import com.android.internal.util.ArrayUtils;
|
||||
import com.android.systemui.DejankUtils;
|
||||
import com.android.systemui.R;
|
||||
@@ -287,6 +289,7 @@ public class TunerServiceImpl extends TunerService {
|
||||
}
|
||||
|
||||
@Override
|
||||
@WorkerThread
|
||||
public boolean isTunerEnabled() {
|
||||
return mUserTracker.getUserContext().getPackageManager().getComponentEnabledSetting(
|
||||
mTunerComponent) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
|
||||
|
||||
@@ -12,7 +12,6 @@ import androidx.test.filters.SmallTest
|
||||
import com.android.internal.logging.MetricsLogger
|
||||
import com.android.internal.logging.UiEventLogger
|
||||
import com.android.internal.logging.testing.FakeMetricsLogger
|
||||
import com.android.systemui.Dependency
|
||||
import com.android.systemui.R
|
||||
import com.android.systemui.classifier.FalsingManagerFake
|
||||
import com.android.systemui.flags.FeatureFlags
|
||||
@@ -23,9 +22,7 @@ import com.android.systemui.settings.UserTracker
|
||||
import com.android.systemui.statusbar.phone.MultiUserSwitchController
|
||||
import com.android.systemui.statusbar.policy.DeviceProvisionedController
|
||||
import com.android.systemui.statusbar.policy.UserInfoController
|
||||
import com.android.systemui.tuner.TunerService
|
||||
import com.android.systemui.util.settings.FakeSettings
|
||||
import com.android.systemui.utils.leaks.FakeTunerService
|
||||
import com.android.systemui.utils.leaks.LeakCheckedTest
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.After
|
||||
@@ -82,8 +79,6 @@ class FooterActionsControllerTest : LeakCheckedTest() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
testableLooper = TestableLooper.get(this)
|
||||
fakeSettings = FakeSettings()
|
||||
injectLeakCheckedDependencies(*LeakCheckedTest.ALL_SUPPORTED_CLASSES)
|
||||
val fakeTunerService = Dependency.get(TunerService::class.java) as FakeTunerService
|
||||
|
||||
whenever(multiUserSwitchControllerFactory.create(any()))
|
||||
.thenReturn(multiUserSwitchController)
|
||||
@@ -95,9 +90,8 @@ class FooterActionsControllerTest : LeakCheckedTest() {
|
||||
controller = FooterActionsController(view, multiUserSwitchControllerFactory,
|
||||
activityStarter, userManager, userTracker, userInfoController,
|
||||
deviceProvisionedController, securityFooterController, fgsManagerController,
|
||||
falsingManager, metricsLogger, fakeTunerService,
|
||||
globalActionsDialog, uiEventLogger, showPMLiteButton = true, fakeSettings,
|
||||
Handler(testableLooper.looper), featureFlags)
|
||||
falsingManager, metricsLogger, globalActionsDialog, uiEventLogger,
|
||||
showPMLiteButton = true, fakeSettings, Handler(testableLooper.looper), featureFlags)
|
||||
controller.init()
|
||||
ViewUtils.attachView(view)
|
||||
// View looper is the testable looper associated with the test
|
||||
|
||||
Reference in New Issue
Block a user