Unify action buttons to a common widget (part 1)
- Create a preference type to host action button preferences. - Convert app battery usage page to use the new preference - Convert wifi detail page to use the new preference Change-Id: I60bc473986ab46f2897e2537eb0e013fa813a4fc Fix: 63991885 Test: robotests
This commit is contained in:
@@ -16,7 +16,6 @@
|
||||
package com.android.settings.wifi.details;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.ArgumentMatchers.nullable;
|
||||
import static org.mockito.Matchers.any;
|
||||
@@ -52,7 +51,6 @@ import android.support.v7.preference.PreferenceCategory;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
@@ -63,6 +61,8 @@ import com.android.settings.core.instrumentation.MetricsFeatureProvider;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
|
||||
import com.android.settings.vpn2.ConnectivityManagerWrapperImpl;
|
||||
import com.android.settings.widget.ActionButtonPreference;
|
||||
import com.android.settings.widget.ActionButtonPreferenceTest;
|
||||
import com.android.settings.widget.EntityHeaderController;
|
||||
import com.android.settings.wifi.WifiDetailPreference;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
@@ -119,8 +119,7 @@ public class WifiDetailPreferenceControllerTest {
|
||||
private LayoutPreference mockHeaderLayoutPreference;
|
||||
@Mock private ImageView mockHeaderIcon;
|
||||
|
||||
@Mock private LayoutPreference mockButtonsPref;
|
||||
@Mock private Button mockSignInButton;
|
||||
@Mock private ActionButtonPreference mockButtonsPref;
|
||||
@Mock private WifiDetailPreference mockSignalStrengthPref;
|
||||
@Mock private WifiDetailPreference mockLinkSpeedPref;
|
||||
@Mock private WifiDetailPreference mockFrequencyPref;
|
||||
@@ -130,7 +129,6 @@ public class WifiDetailPreferenceControllerTest {
|
||||
@Mock private WifiDetailPreference mockGatewayPref;
|
||||
@Mock private WifiDetailPreference mockSubnetPref;
|
||||
@Mock private WifiDetailPreference mockDnsPref;
|
||||
@Mock private Button mockForgetButton;
|
||||
@Mock private PreferenceCategory mockIpv6Category;
|
||||
@Mock private WifiDetailPreference mockIpv6AddressesPref;
|
||||
|
||||
@@ -211,7 +209,9 @@ public class WifiDetailPreferenceControllerTest {
|
||||
.thenReturn(mockNetworkInfo);
|
||||
doNothing().when(mockConnectivityManagerWrapper).registerNetworkCallback(
|
||||
nullable(NetworkRequest.class), mCallbackCaptor.capture(), nullable(Handler.class));
|
||||
doNothing().when(mockForgetButton).setOnClickListener(mForgetClickListener.capture());
|
||||
mockButtonsPref = ActionButtonPreferenceTest.createMock();
|
||||
when(mockButtonsPref.setButton1OnClickListener(mForgetClickListener.capture()))
|
||||
.thenReturn(mockButtonsPref);
|
||||
|
||||
when(mockWifiInfo.getLinkSpeed()).thenReturn(LINK_SPEED);
|
||||
when(mockWifiInfo.getRssi()).thenReturn(RSSI);
|
||||
@@ -256,10 +256,6 @@ public class WifiDetailPreferenceControllerTest {
|
||||
|
||||
when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_BUTTONS_PREF))
|
||||
.thenReturn(mockButtonsPref);
|
||||
when(mockButtonsPref.findViewById(R.id.forget_button))
|
||||
.thenReturn(mockForgetButton);
|
||||
when(mockButtonsPref.findViewById(R.id.signin_button))
|
||||
.thenReturn(mockSignInButton);
|
||||
when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_SIGNAL_STRENGTH_PREF))
|
||||
.thenReturn(mockSignalStrengthPref);
|
||||
when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_LINK_SPEED))
|
||||
@@ -596,7 +592,7 @@ public class WifiDetailPreferenceControllerTest {
|
||||
mController = newWifiDetailPreferenceController();
|
||||
displayAndResume();
|
||||
|
||||
verify(mockForgetButton).setVisibility(View.INVISIBLE);
|
||||
verify(mockButtonsPref).setButton1Visible(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -606,14 +602,14 @@ public class WifiDetailPreferenceControllerTest {
|
||||
|
||||
displayAndResume();
|
||||
|
||||
verify(mockForgetButton).setVisibility(View.VISIBLE);
|
||||
verify(mockButtonsPref).setButton1Visible(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void canForgetNetwork_saved() {
|
||||
displayAndResume();
|
||||
|
||||
verify(mockForgetButton).setVisibility(View.VISIBLE);
|
||||
verify(mockButtonsPref).setButton1Visible(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -716,23 +712,23 @@ public class WifiDetailPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void captivePortal_shouldShowSignInButton() {
|
||||
InOrder inOrder = inOrder(mockSignInButton);
|
||||
InOrder inOrder = inOrder(mockButtonsPref);
|
||||
|
||||
displayAndResume();
|
||||
|
||||
inOrder.verify(mockSignInButton).setVisibility(View.INVISIBLE);
|
||||
inOrder.verify(mockButtonsPref).setButton2Visible(false);
|
||||
|
||||
NetworkCapabilities nc = makeNetworkCapabilities();
|
||||
updateNetworkCapabilities(nc);
|
||||
inOrder.verify(mockSignInButton).setVisibility(View.INVISIBLE);
|
||||
inOrder.verify(mockButtonsPref).setButton2Visible(false);
|
||||
|
||||
nc.addCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL);
|
||||
updateNetworkCapabilities(nc);
|
||||
inOrder.verify(mockSignInButton).setVisibility(View.VISIBLE);
|
||||
inOrder.verify(mockButtonsPref).setButton2Visible(true);
|
||||
|
||||
nc.removeCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL);
|
||||
updateNetworkCapabilities(nc);
|
||||
inOrder.verify(mockSignInButton).setVisibility(View.INVISIBLE);
|
||||
inOrder.verify(mockButtonsPref).setButton2Visible(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -740,40 +736,10 @@ public class WifiDetailPreferenceControllerTest {
|
||||
displayAndResume();
|
||||
|
||||
ArgumentCaptor<OnClickListener> captor = ArgumentCaptor.forClass(OnClickListener.class);
|
||||
verify(mockSignInButton).setOnClickListener(captor.capture());
|
||||
captor.getValue().onClick(mockSignInButton);
|
||||
verify(mockButtonsPref).setButton2OnClickListener(captor.capture());
|
||||
captor.getValue().onClick(null);
|
||||
verify(mockConnectivityManagerWrapper).startCaptivePortalApp(mockNetwork);
|
||||
verify(mockMetricsFeatureProvider)
|
||||
.action(mockActivity, MetricsProto.MetricsEvent.ACTION_WIFI_SIGNIN);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void signInButtonVisible_buttonPanelShouldBeVisible() {
|
||||
when(mockSignInButton.getVisibility()).thenReturn(View.VISIBLE);
|
||||
when(mockForgetButton.getVisibility()).thenReturn(View.INVISIBLE);
|
||||
|
||||
displayAndResume();
|
||||
|
||||
verify(mockButtonsPref).setVisible(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forgetButtonVisible_buttonPanelShouldBeVisible() {
|
||||
when(mockSignInButton.getVisibility()).thenReturn(View.INVISIBLE);
|
||||
when(mockForgetButton.getVisibility()).thenReturn(View.VISIBLE);
|
||||
|
||||
displayAndResume();
|
||||
|
||||
verify(mockButtonsPref).setVisible(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void neitherButtonVisible_buttonPanelShouldBeInvisible() {
|
||||
when(mockSignInButton.getVisibility()).thenReturn(View.INVISIBLE);
|
||||
when(mockForgetButton.getVisibility()).thenReturn(View.INVISIBLE);
|
||||
|
||||
displayAndResume();
|
||||
|
||||
verify(mockButtonsPref).setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user