From 67a0f850a4d3358f3e1168bc84012edf96139ac2 Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Mon, 15 Jun 2015 15:35:47 -0400 Subject: Volume: Force focused state to disambig multiple sliders. And fix volume policy so that a focused slider at the top of the screen does not cause the window to pan. Bug: 21476764 Change-Id: I4a52270ca5ecf9b9bd6e787ef580ecbd32e62625 --- .../SystemUI/src/com/android/systemui/volume/VolumeDialog.java | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'packages') diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java index 5b2eb84..065523f 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java @@ -155,6 +155,7 @@ public class VolumeDialog { lp.y = res.getDimensionPixelSize(R.dimen.volume_offset_top); lp.gravity = Gravity.TOP; window.setAttributes(lp); + window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING); mActiveSliderTint = loadColorStateList(R.color.system_accent_color); mInactiveSliderTint = loadColorStateList(R.color.volume_slider_inactive); @@ -670,6 +671,14 @@ public class VolumeDialog { } private void updateVolumeRowSliderTintH(VolumeRow row, boolean isActive) { + if (isActive && mExpanded) { + row.slider.setFocusable(true); + row.slider.setFocusableInTouchMode(true); + row.slider.requestFocus(); + } else { + row.slider.setFocusableInTouchMode(false); + row.slider.setFocusable(false); + } final ColorStateList tint = isActive && row.slider.isEnabled() ? mActiveSliderTint : mInactiveSliderTint; if (tint == row.cachedSliderTint) return; -- cgit v1.1