Loading packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java +4 −0 Original line number Diff line number Diff line Loading @@ -108,6 +108,7 @@ public interface QSTile { public Supplier<Icon> iconSupplier; public int state = Tile.STATE_ACTIVE; public CharSequence label; public CharSequence secondaryLabel; public CharSequence contentDescription; public CharSequence dualLabelContentDescription; public boolean disabledByPolicy; Loading @@ -122,6 +123,7 @@ public interface QSTile { final boolean changed = !Objects.equals(other.icon, icon) || !Objects.equals(other.iconSupplier, iconSupplier) || !Objects.equals(other.label, label) || !Objects.equals(other.secondaryLabel, secondaryLabel) || !Objects.equals(other.contentDescription, contentDescription) || !Objects.equals(other.dualLabelContentDescription, dualLabelContentDescription) Loading @@ -135,6 +137,7 @@ public interface QSTile { other.icon = icon; other.iconSupplier = iconSupplier; other.label = label; other.secondaryLabel = secondaryLabel; other.contentDescription = contentDescription; other.dualLabelContentDescription = dualLabelContentDescription; other.expandedAccessibilityClassName = expandedAccessibilityClassName; Loading @@ -156,6 +159,7 @@ public interface QSTile { sb.append(",icon=").append(icon); sb.append(",iconSupplier=").append(iconSupplier); sb.append(",label=").append(label); sb.append(",secondaryLabel=").append(secondaryLabel); sb.append(",contentDescription=").append(contentDescription); sb.append(",dualLabelContentDescription=").append(dualLabelContentDescription); sb.append(",expandedAccessibilityClassName=").append(expandedAccessibilityClassName); Loading packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileView.java +19 −7 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ import android.content.Context; import android.content.res.Configuration; import android.service.quicksettings.Tile; import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.text.style.ForegroundColorSpan; import android.view.Gravity; import android.view.LayoutInflater; Loading @@ -28,6 +29,7 @@ import android.widget.TextView; import com.android.systemui.FontSizeUtils; import com.android.systemui.R; import com.android.systemui.R.id; import com.android.systemui.plugins.qs.QSIconView; import com.android.systemui.plugins.qs.QSTile; Loading @@ -36,8 +38,10 @@ import libcore.util.Objects; /** View that represents a standard quick settings tile. **/ public class QSTileView extends QSTileBaseView { private static final boolean DUAL_TARGET_ALLOWED = false; private View mDivider; protected TextView mLabel; private TextView mSecondLine; private ImageView mPadLock; private int mState; private ViewGroup mLabelContainer; Loading Loading @@ -86,6 +90,8 @@ public class QSTileView extends QSTileBaseView { mDivider = mLabelContainer.findViewById(R.id.underline); mExpandIndicator = mLabelContainer.findViewById(R.id.expand_indicator); mExpandSpace = mLabelContainer.findViewById(R.id.expand_space); mSecondLine = mLabelContainer.findViewById(R.id.app_label); mSecondLine.setAlpha(.6f); addView(mLabelContainer); } Loading @@ -103,14 +109,20 @@ public class QSTileView extends QSTileBaseView { mState = state.state; mLabel.setText(state.label); } mExpandIndicator.setVisibility(state.dualTarget ? View.VISIBLE : View.GONE); mExpandSpace.setVisibility(state.dualTarget ? View.VISIBLE : View.GONE); mLabelContainer.setContentDescription(state.dualTarget ? state.dualLabelContentDescription if (!Objects.equal(mSecondLine.getText(), state.secondaryLabel)) { mSecondLine.setText(state.secondaryLabel); mSecondLine.setVisibility(TextUtils.isEmpty(state.secondaryLabel) ? View.GONE : View.VISIBLE); } boolean dualTarget = DUAL_TARGET_ALLOWED && state.dualTarget; mExpandIndicator.setVisibility(dualTarget ? View.VISIBLE : View.GONE); mExpandSpace.setVisibility(dualTarget ? View.VISIBLE : View.GONE); mLabelContainer.setContentDescription(dualTarget ? state.dualLabelContentDescription : null); if (state.dualTarget != mLabelContainer.isClickable()) { mLabelContainer.setClickable(state.dualTarget); mLabelContainer.setLongClickable(state.dualTarget); mLabelContainer.setBackground(state.dualTarget ? newTileBackground() : null); if (dualTarget != mLabelContainer.isClickable()) { mLabelContainer.setClickable(dualTarget); mLabelContainer.setLongClickable(dualTarget); mLabelContainer.setBackground(dualTarget ? newTileBackground() : null); } mLabel.setEnabled(!state.disabledByPolicy); mPadLock.setVisibility(state.disabledByPolicy ? View.VISIBLE : View.GONE); Loading packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java +3 −8 Original line number Diff line number Diff line Loading @@ -125,11 +125,11 @@ public class BluetoothTile extends QSTileImpl<BooleanState> { state.slash = new SlashState(); } state.slash.isSlashed = !enabled; state.label = mContext.getString(R.string.quick_settings_bluetooth_label); if (enabled) { state.label = null; if (connected) { state.icon = ResourceIcon.get(R.drawable.ic_qs_bluetooth_connected); state.label = mController.getLastDeviceName(); state.secondaryLabel = mController.getLastDeviceName(); CachedBluetoothDevice lastDevice = mController.getLastDevice(); if (lastDevice != null) { int batteryLevel = lastDevice.getBatteryLevel(); Loading @@ -140,25 +140,20 @@ public class BluetoothTile extends QSTileImpl<BooleanState> { } } state.contentDescription = mContext.getString( R.string.accessibility_bluetooth_name, state.label); R.string.accessibility_bluetooth_name, state.secondaryLabel); } else if (state.isTransient) { state.icon = ResourceIcon.get(R.drawable.ic_bluetooth_transient_animation); state.contentDescription = mContext.getString( R.string.accessibility_quick_settings_bluetooth_connecting); state.label = mContext.getString(R.string.quick_settings_bluetooth_label); } else { state.icon = ResourceIcon.get(R.drawable.ic_qs_bluetooth_on); state.contentDescription = mContext.getString( R.string.accessibility_quick_settings_bluetooth_on) + "," + mContext.getString(R.string.accessibility_not_connected); } if (TextUtils.isEmpty(state.label)) { state.label = mContext.getString(R.string.quick_settings_bluetooth_label); } state.state = Tile.STATE_ACTIVE; } else { state.icon = ResourceIcon.get(R.drawable.ic_qs_bluetooth_on); state.label = mContext.getString(R.string.quick_settings_bluetooth_label); state.contentDescription = mContext.getString( R.string.accessibility_quick_settings_bluetooth_off); state.state = Tile.STATE_INACTIVE; Loading Loading
packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java +4 −0 Original line number Diff line number Diff line Loading @@ -108,6 +108,7 @@ public interface QSTile { public Supplier<Icon> iconSupplier; public int state = Tile.STATE_ACTIVE; public CharSequence label; public CharSequence secondaryLabel; public CharSequence contentDescription; public CharSequence dualLabelContentDescription; public boolean disabledByPolicy; Loading @@ -122,6 +123,7 @@ public interface QSTile { final boolean changed = !Objects.equals(other.icon, icon) || !Objects.equals(other.iconSupplier, iconSupplier) || !Objects.equals(other.label, label) || !Objects.equals(other.secondaryLabel, secondaryLabel) || !Objects.equals(other.contentDescription, contentDescription) || !Objects.equals(other.dualLabelContentDescription, dualLabelContentDescription) Loading @@ -135,6 +137,7 @@ public interface QSTile { other.icon = icon; other.iconSupplier = iconSupplier; other.label = label; other.secondaryLabel = secondaryLabel; other.contentDescription = contentDescription; other.dualLabelContentDescription = dualLabelContentDescription; other.expandedAccessibilityClassName = expandedAccessibilityClassName; Loading @@ -156,6 +159,7 @@ public interface QSTile { sb.append(",icon=").append(icon); sb.append(",iconSupplier=").append(iconSupplier); sb.append(",label=").append(label); sb.append(",secondaryLabel=").append(secondaryLabel); sb.append(",contentDescription=").append(contentDescription); sb.append(",dualLabelContentDescription=").append(dualLabelContentDescription); sb.append(",expandedAccessibilityClassName=").append(expandedAccessibilityClassName); Loading
packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileView.java +19 −7 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ import android.content.Context; import android.content.res.Configuration; import android.service.quicksettings.Tile; import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.text.style.ForegroundColorSpan; import android.view.Gravity; import android.view.LayoutInflater; Loading @@ -28,6 +29,7 @@ import android.widget.TextView; import com.android.systemui.FontSizeUtils; import com.android.systemui.R; import com.android.systemui.R.id; import com.android.systemui.plugins.qs.QSIconView; import com.android.systemui.plugins.qs.QSTile; Loading @@ -36,8 +38,10 @@ import libcore.util.Objects; /** View that represents a standard quick settings tile. **/ public class QSTileView extends QSTileBaseView { private static final boolean DUAL_TARGET_ALLOWED = false; private View mDivider; protected TextView mLabel; private TextView mSecondLine; private ImageView mPadLock; private int mState; private ViewGroup mLabelContainer; Loading Loading @@ -86,6 +90,8 @@ public class QSTileView extends QSTileBaseView { mDivider = mLabelContainer.findViewById(R.id.underline); mExpandIndicator = mLabelContainer.findViewById(R.id.expand_indicator); mExpandSpace = mLabelContainer.findViewById(R.id.expand_space); mSecondLine = mLabelContainer.findViewById(R.id.app_label); mSecondLine.setAlpha(.6f); addView(mLabelContainer); } Loading @@ -103,14 +109,20 @@ public class QSTileView extends QSTileBaseView { mState = state.state; mLabel.setText(state.label); } mExpandIndicator.setVisibility(state.dualTarget ? View.VISIBLE : View.GONE); mExpandSpace.setVisibility(state.dualTarget ? View.VISIBLE : View.GONE); mLabelContainer.setContentDescription(state.dualTarget ? state.dualLabelContentDescription if (!Objects.equal(mSecondLine.getText(), state.secondaryLabel)) { mSecondLine.setText(state.secondaryLabel); mSecondLine.setVisibility(TextUtils.isEmpty(state.secondaryLabel) ? View.GONE : View.VISIBLE); } boolean dualTarget = DUAL_TARGET_ALLOWED && state.dualTarget; mExpandIndicator.setVisibility(dualTarget ? View.VISIBLE : View.GONE); mExpandSpace.setVisibility(dualTarget ? View.VISIBLE : View.GONE); mLabelContainer.setContentDescription(dualTarget ? state.dualLabelContentDescription : null); if (state.dualTarget != mLabelContainer.isClickable()) { mLabelContainer.setClickable(state.dualTarget); mLabelContainer.setLongClickable(state.dualTarget); mLabelContainer.setBackground(state.dualTarget ? newTileBackground() : null); if (dualTarget != mLabelContainer.isClickable()) { mLabelContainer.setClickable(dualTarget); mLabelContainer.setLongClickable(dualTarget); mLabelContainer.setBackground(dualTarget ? newTileBackground() : null); } mLabel.setEnabled(!state.disabledByPolicy); mPadLock.setVisibility(state.disabledByPolicy ? View.VISIBLE : View.GONE); Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java +3 −8 Original line number Diff line number Diff line Loading @@ -125,11 +125,11 @@ public class BluetoothTile extends QSTileImpl<BooleanState> { state.slash = new SlashState(); } state.slash.isSlashed = !enabled; state.label = mContext.getString(R.string.quick_settings_bluetooth_label); if (enabled) { state.label = null; if (connected) { state.icon = ResourceIcon.get(R.drawable.ic_qs_bluetooth_connected); state.label = mController.getLastDeviceName(); state.secondaryLabel = mController.getLastDeviceName(); CachedBluetoothDevice lastDevice = mController.getLastDevice(); if (lastDevice != null) { int batteryLevel = lastDevice.getBatteryLevel(); Loading @@ -140,25 +140,20 @@ public class BluetoothTile extends QSTileImpl<BooleanState> { } } state.contentDescription = mContext.getString( R.string.accessibility_bluetooth_name, state.label); R.string.accessibility_bluetooth_name, state.secondaryLabel); } else if (state.isTransient) { state.icon = ResourceIcon.get(R.drawable.ic_bluetooth_transient_animation); state.contentDescription = mContext.getString( R.string.accessibility_quick_settings_bluetooth_connecting); state.label = mContext.getString(R.string.quick_settings_bluetooth_label); } else { state.icon = ResourceIcon.get(R.drawable.ic_qs_bluetooth_on); state.contentDescription = mContext.getString( R.string.accessibility_quick_settings_bluetooth_on) + "," + mContext.getString(R.string.accessibility_not_connected); } if (TextUtils.isEmpty(state.label)) { state.label = mContext.getString(R.string.quick_settings_bluetooth_label); } state.state = Tile.STATE_ACTIVE; } else { state.icon = ResourceIcon.get(R.drawable.ic_qs_bluetooth_on); state.label = mContext.getString(R.string.quick_settings_bluetooth_label); state.contentDescription = mContext.getString( R.string.accessibility_quick_settings_bluetooth_off); state.state = Tile.STATE_INACTIVE; Loading