From bb0ec5554593fbf3dc58f05fbe11f839767fc0bc Mon Sep 17 00:00:00 2001 From: Takayuki Hoshi Date: Thu, 17 Dec 2015 20:50:25 +0900 Subject: [PATCH] Do not show volume expander when there is no touch feature Bug: 26099430 Change-Id: Ieeeb896dae824681a9a655849c84200a9f25214d (cherry picked from commit e49bc6ea98c2eafdcdaedc3f6c9ffbe02ee48628) --- .../com/android/systemui/volume/VolumeDialog.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java index 3c63aae9c416c..0901015f12f24 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java @@ -27,6 +27,7 @@ import android.annotation.SuppressLint; import android.app.Dialog; import android.app.KeyguardManager; import android.content.Context; +import android.content.pm.PackageManager; import android.content.res.ColorStateList; import android.content.res.Resources; import android.graphics.Color; @@ -559,7 +560,13 @@ public class VolumeDialog { : R.drawable.ic_volume_expand_animation; if (res == mExpandButtonRes) return; mExpandButtonRes = res; - mExpandButton.setImageResource(res); + if (hasTouchFeature()) { + mExpandButton.setImageResource(res); + } else { + // if there is no touch feature, show the volume ringer instead + mExpandButton.setImageResource(R.drawable.ic_volume_ringer); + mExpandButton.setBackgroundResource(0); // remove gray background emphasis + } mExpandButton.setContentDescription(mContext.getString(mExpanded ? R.string.accessibility_volume_collapse : R.string.accessibility_volume_expand)); } @@ -837,6 +844,11 @@ public class VolumeDialog { rescheduleTimeoutH(); } + private boolean hasTouchFeature() { + final PackageManager pm = mContext.getPackageManager(); + return pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN); + } + private final VolumeDialogController.Callbacks mControllerCallbackH = new VolumeDialogController.Callbacks() { @Override