diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java | 24 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java | 11 |
2 files changed, 24 insertions, 11 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java index 2d0fe6f63219..4d0e60d505f6 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java @@ -32,6 +32,7 @@ import android.widget.Switch; import com.android.systemui.R; import com.android.systemui.plugins.qs.*; +import com.android.systemui.plugins.qs.QSTile.BooleanState; public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { @@ -44,6 +45,7 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { private String mAccessibilityClass; private boolean mTileState; private boolean mCollapsedView; + private boolean mClicked; public QSTileBaseView(Context context, QSIconView icon) { this(context, icon, false); @@ -153,7 +155,11 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { setContentDescription(state.contentDescription); mAccessibilityClass = state.expandedAccessibilityClassName; if (state instanceof QSTile.BooleanState) { - mTileState = ((QSTile.BooleanState) state).value; + boolean newState = ((BooleanState) state).value; + if (mTileState != newState) { + mClicked = false; + mTileState = newState; + } } } @@ -173,15 +179,22 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { } @Override + public boolean performClick() { + mClicked = true; + return super.performClick(); + } + + @Override public void onInitializeAccessibilityEvent(AccessibilityEvent event) { super.onInitializeAccessibilityEvent(event); if (!TextUtils.isEmpty(mAccessibilityClass)) { event.setClassName(mAccessibilityClass); if (Switch.class.getName().equals(mAccessibilityClass)) { + boolean b = mClicked ? !mTileState : mTileState; String label = getResources() - .getString(!mTileState ? R.string.switch_bar_on : R.string.switch_bar_off); + .getString(b ? R.string.switch_bar_on : R.string.switch_bar_off); event.setContentDescription(label); - event.setChecked(!mTileState); + event.setChecked(b); } } } @@ -192,10 +205,11 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView { if (!TextUtils.isEmpty(mAccessibilityClass)) { info.setClassName(mAccessibilityClass); if (Switch.class.getName().equals(mAccessibilityClass)) { + boolean b = mClicked ? !mTileState : mTileState; String label = getResources() - .getString(mTileState ? R.string.switch_bar_on : R.string.switch_bar_off); + .getString(b ? R.string.switch_bar_on : R.string.switch_bar_off); info.setText(label); - info.setChecked(mTileState); + info.setChecked(b); info.setCheckable(true); } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java index 76f6e7d7d243..f26afcc38440 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java @@ -32,17 +32,16 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settingslib.wifi.AccessPoint; import com.android.systemui.Dependency; import com.android.systemui.R; -import com.android.systemui.R.string; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.qs.DetailAdapter; -import com.android.systemui.qs.QSDetailItems; -import com.android.systemui.qs.QSDetailItems.Item; -import com.android.systemui.qs.QSHost; import com.android.systemui.plugins.qs.QSIconView; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile.SignalState; -import com.android.systemui.qs.tileimpl.QSTileImpl; +import com.android.systemui.qs.QSDetailItems; +import com.android.systemui.qs.QSDetailItems.Item; +import com.android.systemui.qs.QSHost; import com.android.systemui.qs.SignalTileView; +import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController.AccessPointController; import com.android.systemui.statusbar.policy.NetworkController.IconState; @@ -180,7 +179,7 @@ public class WifiTile extends QSTileImpl<SignalState> { minimalContentDescription.append(removeDoubleQuotes(cb.enabledDesc)); } } - state.contentDescription = minimalContentDescription; + state.contentDescription = minimalContentDescription.toString(); state.dualLabelContentDescription = r.getString( R.string.accessibility_quick_settings_open_settings, getTileLabel()); state.expandedAccessibilityClassName = Switch.class.getName(); |