Merge "Fix QS wifi accessibility announcements" into oc-dev
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,16 +178,23 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
|
||||
return mIcon;
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user