diff --git a/res/values/strings.xml b/res/values/strings.xml index fca80b43097..03b52b49225 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1956,8 +1956,6 @@ Advanced options Drop down list Advanced Options - - collapse expand diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java index 05fcf5ef41c..e228a142381 100644 --- a/src/com/android/settings/wifi/WifiConfigController.java +++ b/src/com/android/settings/wifi/WifiConfigController.java @@ -347,9 +347,13 @@ public class WifiConfigController implements TextWatcher, showProxyFields(); final CheckBox advancedTogglebox = (CheckBox) mView.findViewById(R.id.wifi_advanced_togglebox); - advancedTogglebox.setOnCheckedChangeListener(this); - advancedTogglebox.setChecked(showAdvancedFields); - setAdvancedOptionAccessibilityString(showAdvancedFields); + if (!showAdvancedFields) { + // Need to show Advanced Option button. + mView.findViewById(R.id.wifi_advanced_toggle).setVisibility(View.VISIBLE); + advancedTogglebox.setOnCheckedChangeListener(this); + advancedTogglebox.setChecked(showAdvancedFields); + setAdvancedOptionAccessibilityString(); + } mView.findViewById(R.id.wifi_advanced_fields) .setVisibility(showAdvancedFields ? View.VISIBLE : View.GONE); } @@ -1553,17 +1557,10 @@ public class WifiConfigController implements TextWatcher, ((EditText) mPasswordView).setSelection(pos); } } else if (view.getId() == R.id.wifi_advanced_togglebox) { - final int toggleVisibility; - final int stringID; - if (isChecked) { - toggleVisibility = View.VISIBLE; - // Hide the SoftKeyboard temporary to let user can see most of the expanded items. - hideSoftKeyboard(mView.getWindowToken()); - } else { - toggleVisibility = View.GONE; - } - mView.findViewById(R.id.wifi_advanced_fields).setVisibility(toggleVisibility); - setAdvancedOptionAccessibilityString(isChecked); + // Hide the SoftKeyboard temporary to let user can see most of the expanded items. + hideSoftKeyboard(mView.getWindowToken()); + view.setVisibility(View.GONE); + mView.findViewById(R.id.wifi_advanced_fields).setVisibility(View.VISIBLE); } } @@ -1673,7 +1670,7 @@ public class WifiConfigController implements TextWatcher, ((CheckBox) mView.findViewById(R.id.wifi_advanced_togglebox)) .setOnCheckedChangeListener(this); // Set correct accessibility strings. - setAdvancedOptionAccessibilityString(false /* showAdvancedFields */); + setAdvancedOptionAccessibilityString(); } /** @@ -1765,7 +1762,7 @@ public class WifiConfigController implements TextWatcher, inputMethodManager.hideSoftInputFromWindow(windowToken, 0 /* flags */); } - private void setAdvancedOptionAccessibilityString(boolean showAdvancedFields) { + private void setAdvancedOptionAccessibilityString() { final CheckBox advancedToggleBox = mView.findViewById(R.id.wifi_advanced_togglebox); advancedToggleBox.setAccessibilityDelegate(new AccessibilityDelegate() { @Override @@ -1776,12 +1773,10 @@ public class WifiConfigController implements TextWatcher, info.setCheckable(false /* checkable */); // To let TalkBack don't pronounce CheckBox. info.setClassName(null /* className */); - final CharSequence accessibilityDoubleTapExtend = mContext.getString( - showAdvancedFields ? R.string.wifi_advanced_toggle_description_expanded - : R.string.wifi_advanced_toggle_description_collapsed); // Customize TalkBack's pronunciation which been appended to "Double-tap to". final AccessibilityAction customClick = new AccessibilityAction( - AccessibilityNodeInfo.ACTION_CLICK, accessibilityDoubleTapExtend); + AccessibilityNodeInfo.ACTION_CLICK, + mContext.getString(R.string.wifi_advanced_toggle_description_collapsed)); info.addAction(customClick); } }); diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java index 0e9c4d03e67..3e8a42cfc6a 100644 --- a/src/com/android/settings/wifi/WifiConfigController2.java +++ b/src/com/android/settings/wifi/WifiConfigController2.java @@ -348,9 +348,13 @@ public class WifiConfigController2 implements TextWatcher, showProxyFields(); final CheckBox advancedTogglebox = (CheckBox) mView.findViewById(R.id.wifi_advanced_togglebox); - advancedTogglebox.setOnCheckedChangeListener(this); - advancedTogglebox.setChecked(showAdvancedFields); - setAdvancedOptionAccessibilityString(showAdvancedFields); + if (!showAdvancedFields) { + // Need to show Advanced Option button. + mView.findViewById(R.id.wifi_advanced_toggle).setVisibility(View.VISIBLE); + advancedTogglebox.setOnCheckedChangeListener(this); + advancedTogglebox.setChecked(showAdvancedFields); + setAdvancedOptionAccessibilityString(); + } mView.findViewById(R.id.wifi_advanced_fields) .setVisibility(showAdvancedFields ? View.VISIBLE : View.GONE); } @@ -1554,17 +1558,10 @@ public class WifiConfigController2 implements TextWatcher, ((EditText) mPasswordView).setSelection(pos); } } else if (view.getId() == R.id.wifi_advanced_togglebox) { - final int toggleVisibility; - final int stringID; - if (isChecked) { - toggleVisibility = View.VISIBLE; - // Hide the SoftKeyboard temporary to let user can see most of the expanded items. - hideSoftKeyboard(mView.getWindowToken()); - } else { - toggleVisibility = View.GONE; - } - mView.findViewById(R.id.wifi_advanced_fields).setVisibility(toggleVisibility); - setAdvancedOptionAccessibilityString(isChecked); + // Hide the SoftKeyboard temporary to let user can see most of the expanded items. + hideSoftKeyboard(mView.getWindowToken()); + view.setVisibility(View.GONE); + mView.findViewById(R.id.wifi_advanced_fields).setVisibility(View.VISIBLE); } } @@ -1674,7 +1671,7 @@ public class WifiConfigController2 implements TextWatcher, ((CheckBox) mView.findViewById(R.id.wifi_advanced_togglebox)) .setOnCheckedChangeListener(this); // Set correct accessibility strings. - setAdvancedOptionAccessibilityString(false /* showAdvancedFields */); + setAdvancedOptionAccessibilityString(); } /** @@ -1766,7 +1763,7 @@ public class WifiConfigController2 implements TextWatcher, inputMethodManager.hideSoftInputFromWindow(windowToken, 0 /* flags */); } - private void setAdvancedOptionAccessibilityString(boolean showAdvancedFields) { + private void setAdvancedOptionAccessibilityString() { final CheckBox advancedToggleBox = mView.findViewById(R.id.wifi_advanced_togglebox); advancedToggleBox.setAccessibilityDelegate(new AccessibilityDelegate() { @Override @@ -1777,12 +1774,10 @@ public class WifiConfigController2 implements TextWatcher, info.setCheckable(false /* checkable */); // To let TalkBack don't pronounce CheckBox. info.setClassName(null /* className */); - final CharSequence accessibilityDoubleTapExtend = mContext.getString( - showAdvancedFields ? R.string.wifi_advanced_toggle_description_expanded - : R.string.wifi_advanced_toggle_description_collapsed); // Customize TalkBack's pronunciation which been appended to "Double-tap to". final AccessibilityAction customClick = new AccessibilityAction( - AccessibilityNodeInfo.ACTION_CLICK, accessibilityDoubleTapExtend); + AccessibilityNodeInfo.ACTION_CLICK, + mContext.getString(R.string.wifi_advanced_toggle_description_collapsed)); info.addAction(customClick); } }); diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java index e1202ae6cc0..bf507425062 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java @@ -549,4 +549,13 @@ public class WifiConfigControllerTest { assertThat(advButton.getContentDescription()).isEqualTo( mContext.getString(R.string.wifi_advanced_toggle_description)); } + + @Test + public void getVisibility_whenAdvancedOptionClicked_shouldBeGone() { + final CheckBox advButton = mView.findViewById(R.id.wifi_advanced_togglebox); + + advButton.performClick(); + + assertThat(advButton.getVisibility()).isEqualTo(View.GONE); + } }