Loading packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetAdapter.java +36 −10 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.content.Intent; import android.graphics.drawable.Drawable; import android.text.Html; import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; Loading Loading @@ -158,22 +159,47 @@ public class InternetAdapter extends RecyclerView.Adapter<InternetAdapter.Intern final int security = wifiEntry.getSecurity(); updateEndIcon(connectedState, security); mWifiListLayout.setEnabled(shouldEnabled(wifiEntry)); if (connectedState != WifiEntry.CONNECTED_STATE_DISCONNECTED) { mWifiListLayout.setOnClickListener( v -> mInternetDialogController.launchWifiNetworkDetailsSetting( v -> mInternetDialogController.launchWifiDetailsSetting( wifiEntry.getKey(), v)); return; } mWifiListLayout.setOnClickListener(v -> { mWifiListLayout.setOnClickListener(v -> onWifiClick(wifiEntry, v)); } boolean shouldEnabled(@NonNull WifiEntry wifiEntry) { if (wifiEntry.canConnect()) { return true; } // If Wi-Fi is connected or saved network, leave it enabled to disconnect or configure. if (wifiEntry.canDisconnect() || wifiEntry.isSaved()) { return true; } return false; } void onWifiClick(@NonNull WifiEntry wifiEntry, @NonNull View view) { if (wifiEntry.shouldEditBeforeConnect()) { final Intent intent = WifiUtils.getWifiDialogIntent(wifiEntry.getKey(), true /* connectForCaller */); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); mContext.startActivity(intent); return; } if (wifiEntry.canConnect()) { mInternetDialogController.connect(wifiEntry); }); return; } if (wifiEntry.isSaved()) { Log.w(TAG, "The saved Wi-Fi network does not allow to connect. SSID:" + wifiEntry.getSsid()); mInternetDialogController.launchWifiDetailsSetting(wifiEntry.getKey(), view); } } void setWifiNetworkLayout(CharSequence title, CharSequence summary) { Loading packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java +1 −2 Original line number Diff line number Diff line Loading @@ -531,8 +531,7 @@ public class InternetDialog extends SystemUIDialog implements if (mConnectedWifiEntry == null) { return; } mInternetDialogController.launchWifiNetworkDetailsSetting(mConnectedWifiEntry.getKey(), view); mInternetDialogController.launchWifiDetailsSetting(mConnectedWifiEntry.getKey(), view); } void onClickSeeMoreButton(View view) { Loading packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +1 −1 Original line number Diff line number Diff line Loading @@ -635,7 +635,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi startActivity(getSettingsIntent(), view); } void launchWifiNetworkDetailsSetting(String key, View view) { void launchWifiDetailsSetting(String key, View view) { Intent intent = getWifiDetailsSettingsIntent(key); if (intent != null) { startActivity(intent, view); Loading packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetAdapterTest.java +70 −0 Original line number Diff line number Diff line Loading @@ -4,14 +4,19 @@ import static com.android.systemui.qs.tiles.dialog.InternetDialogController.MAX_ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.graphics.drawable.Drawable; import android.testing.AndroidTestingRunner; import android.testing.TestableResources; Loading @@ -30,6 +35,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Spy; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; Loading @@ -40,6 +46,7 @@ import java.util.List; @RunWith(AndroidTestingRunner.class) public class InternetAdapterTest extends SysuiTestCase { private static final String WIFI_KEY = "Wi-Fi_Key"; private static final String WIFI_TITLE = "Wi-Fi Title"; private static final String WIFI_SUMMARY = "Wi-Fi Summary"; private static final int GEAR_ICON_RES_ID = R.drawable.ic_settings_24dp; Loading @@ -47,6 +54,8 @@ public class InternetAdapterTest extends SysuiTestCase { @Rule public MockitoRule mRule = MockitoJUnit.rule(); @Spy private Context mSpyContext = mContext; @Mock private WifiEntry mInternetWifiEntry; Loading Loading @@ -74,6 +83,7 @@ public class InternetAdapterTest extends SysuiTestCase { when(mInternetWifiEntry.getSummary(false)).thenReturn(WIFI_SUMMARY); when(mInternetWifiEntry.isDefaultNetwork()).thenReturn(true); when(mInternetWifiEntry.hasInternetAccess()).thenReturn(true); when(mWifiEntry.getKey()).thenReturn(WIFI_KEY); when(mWifiEntry.getTitle()).thenReturn(WIFI_TITLE); when(mWifiEntry.getSummary(false)).thenReturn(WIFI_SUMMARY); Loading Loading @@ -196,6 +206,66 @@ public class InternetAdapterTest extends SysuiTestCase { assertThat(mInternetAdapter.mMaxEntriesCount).isEqualTo(maxCount); } @Test public void viewHolderShouldEnabled_wifiCanConnect_returnTrue() { when(mWifiEntry.canConnect()).thenReturn(true); assertThat(mViewHolder.shouldEnabled(mWifiEntry)).isTrue(); } @Test public void viewHolderShouldEnabled_wifiCanNotConnect_returnFalse() { when(mWifiEntry.canConnect()).thenReturn(false); assertThat(mViewHolder.shouldEnabled(mWifiEntry)).isFalse(); } @Test public void viewHolderShouldEnabled_wifiCanNotConnectButCanDisconnect_returnTrue() { when(mWifiEntry.canConnect()).thenReturn(false); when(mWifiEntry.canConnect()).thenReturn(true); assertThat(mViewHolder.shouldEnabled(mWifiEntry)).isTrue(); } @Test public void viewHolderShouldEnabled_wifiCanNotConnectButIsSaved_returnTrue() { when(mWifiEntry.canConnect()).thenReturn(false); when(mWifiEntry.isSaved()).thenReturn(true); assertThat(mViewHolder.shouldEnabled(mWifiEntry)).isTrue(); } @Test public void viewHolderOnWifiClick_wifiShouldEditBeforeConnect_startActivity() { when(mWifiEntry.shouldEditBeforeConnect()).thenReturn(true); mViewHolder = mInternetAdapter.onCreateViewHolder(new LinearLayout(mSpyContext), 0); doNothing().when(mSpyContext).startActivity(any()); mViewHolder.onWifiClick(mWifiEntry, mock(View.class)); verify(mSpyContext).startActivity(any()); } @Test public void viewHolderOnWifiClick_wifiCanConnect_connectWifi() { when(mWifiEntry.canConnect()).thenReturn(true); mViewHolder.onWifiClick(mWifiEntry, mock(View.class)); verify(mInternetDialogController).connect(mWifiEntry); } @Test public void viewHolderOnWifiClick_wifiCanNotConnectButIsSaved_launchWifiDetailsSetting() { when(mWifiEntry.canConnect()).thenReturn(false); when(mWifiEntry.isSaved()).thenReturn(true); mViewHolder.onWifiClick(mWifiEntry, mock(View.class)); verify(mInternetDialogController).launchWifiDetailsSetting(anyString(), any()); } @Test public void viewHolderUpdateEndIcon_wifiConnected_updateGearIcon() { mTestableResources.addOverride(GEAR_ICON_RES_ID, mGearIcon); Loading packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogControllerTest.java +4 −6 Original line number Diff line number Diff line Loading @@ -385,18 +385,16 @@ public class InternetDialogControllerTest extends SysuiTestCase { } @Test public void launchWifiNetworkDetailsSetting_withNoWifiEntryKey_doNothing() { mInternetDialogController.launchWifiNetworkDetailsSetting(null /* key */, mDialogLaunchView); public void launchWifiDetailsSetting_withNoWifiEntryKey_doNothing() { mInternetDialogController.launchWifiDetailsSetting(null /* key */, mDialogLaunchView); verify(mActivityStarter, never()) .postStartActivityDismissingKeyguard(any(Intent.class), anyInt()); } @Test public void launchWifiNetworkDetailsSetting_withWifiEntryKey_startActivity() { mInternetDialogController.launchWifiNetworkDetailsSetting("wifi_entry_key", mDialogLaunchView); public void launchWifiDetailsSetting_withWifiEntryKey_startActivity() { mInternetDialogController.launchWifiDetailsSetting("wifi_entry_key", mDialogLaunchView); verify(mActivityStarter).postStartActivityDismissingKeyguard(any(Intent.class), anyInt(), any()); Loading Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetAdapter.java +36 −10 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.content.Intent; import android.graphics.drawable.Drawable; import android.text.Html; import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; Loading Loading @@ -158,22 +159,47 @@ public class InternetAdapter extends RecyclerView.Adapter<InternetAdapter.Intern final int security = wifiEntry.getSecurity(); updateEndIcon(connectedState, security); mWifiListLayout.setEnabled(shouldEnabled(wifiEntry)); if (connectedState != WifiEntry.CONNECTED_STATE_DISCONNECTED) { mWifiListLayout.setOnClickListener( v -> mInternetDialogController.launchWifiNetworkDetailsSetting( v -> mInternetDialogController.launchWifiDetailsSetting( wifiEntry.getKey(), v)); return; } mWifiListLayout.setOnClickListener(v -> { mWifiListLayout.setOnClickListener(v -> onWifiClick(wifiEntry, v)); } boolean shouldEnabled(@NonNull WifiEntry wifiEntry) { if (wifiEntry.canConnect()) { return true; } // If Wi-Fi is connected or saved network, leave it enabled to disconnect or configure. if (wifiEntry.canDisconnect() || wifiEntry.isSaved()) { return true; } return false; } void onWifiClick(@NonNull WifiEntry wifiEntry, @NonNull View view) { if (wifiEntry.shouldEditBeforeConnect()) { final Intent intent = WifiUtils.getWifiDialogIntent(wifiEntry.getKey(), true /* connectForCaller */); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); mContext.startActivity(intent); return; } if (wifiEntry.canConnect()) { mInternetDialogController.connect(wifiEntry); }); return; } if (wifiEntry.isSaved()) { Log.w(TAG, "The saved Wi-Fi network does not allow to connect. SSID:" + wifiEntry.getSsid()); mInternetDialogController.launchWifiDetailsSetting(wifiEntry.getKey(), view); } } void setWifiNetworkLayout(CharSequence title, CharSequence summary) { Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java +1 −2 Original line number Diff line number Diff line Loading @@ -531,8 +531,7 @@ public class InternetDialog extends SystemUIDialog implements if (mConnectedWifiEntry == null) { return; } mInternetDialogController.launchWifiNetworkDetailsSetting(mConnectedWifiEntry.getKey(), view); mInternetDialogController.launchWifiDetailsSetting(mConnectedWifiEntry.getKey(), view); } void onClickSeeMoreButton(View view) { Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +1 −1 Original line number Diff line number Diff line Loading @@ -635,7 +635,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi startActivity(getSettingsIntent(), view); } void launchWifiNetworkDetailsSetting(String key, View view) { void launchWifiDetailsSetting(String key, View view) { Intent intent = getWifiDetailsSettingsIntent(key); if (intent != null) { startActivity(intent, view); Loading
packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetAdapterTest.java +70 −0 Original line number Diff line number Diff line Loading @@ -4,14 +4,19 @@ import static com.android.systemui.qs.tiles.dialog.InternetDialogController.MAX_ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.graphics.drawable.Drawable; import android.testing.AndroidTestingRunner; import android.testing.TestableResources; Loading @@ -30,6 +35,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Spy; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; Loading @@ -40,6 +46,7 @@ import java.util.List; @RunWith(AndroidTestingRunner.class) public class InternetAdapterTest extends SysuiTestCase { private static final String WIFI_KEY = "Wi-Fi_Key"; private static final String WIFI_TITLE = "Wi-Fi Title"; private static final String WIFI_SUMMARY = "Wi-Fi Summary"; private static final int GEAR_ICON_RES_ID = R.drawable.ic_settings_24dp; Loading @@ -47,6 +54,8 @@ public class InternetAdapterTest extends SysuiTestCase { @Rule public MockitoRule mRule = MockitoJUnit.rule(); @Spy private Context mSpyContext = mContext; @Mock private WifiEntry mInternetWifiEntry; Loading Loading @@ -74,6 +83,7 @@ public class InternetAdapterTest extends SysuiTestCase { when(mInternetWifiEntry.getSummary(false)).thenReturn(WIFI_SUMMARY); when(mInternetWifiEntry.isDefaultNetwork()).thenReturn(true); when(mInternetWifiEntry.hasInternetAccess()).thenReturn(true); when(mWifiEntry.getKey()).thenReturn(WIFI_KEY); when(mWifiEntry.getTitle()).thenReturn(WIFI_TITLE); when(mWifiEntry.getSummary(false)).thenReturn(WIFI_SUMMARY); Loading Loading @@ -196,6 +206,66 @@ public class InternetAdapterTest extends SysuiTestCase { assertThat(mInternetAdapter.mMaxEntriesCount).isEqualTo(maxCount); } @Test public void viewHolderShouldEnabled_wifiCanConnect_returnTrue() { when(mWifiEntry.canConnect()).thenReturn(true); assertThat(mViewHolder.shouldEnabled(mWifiEntry)).isTrue(); } @Test public void viewHolderShouldEnabled_wifiCanNotConnect_returnFalse() { when(mWifiEntry.canConnect()).thenReturn(false); assertThat(mViewHolder.shouldEnabled(mWifiEntry)).isFalse(); } @Test public void viewHolderShouldEnabled_wifiCanNotConnectButCanDisconnect_returnTrue() { when(mWifiEntry.canConnect()).thenReturn(false); when(mWifiEntry.canConnect()).thenReturn(true); assertThat(mViewHolder.shouldEnabled(mWifiEntry)).isTrue(); } @Test public void viewHolderShouldEnabled_wifiCanNotConnectButIsSaved_returnTrue() { when(mWifiEntry.canConnect()).thenReturn(false); when(mWifiEntry.isSaved()).thenReturn(true); assertThat(mViewHolder.shouldEnabled(mWifiEntry)).isTrue(); } @Test public void viewHolderOnWifiClick_wifiShouldEditBeforeConnect_startActivity() { when(mWifiEntry.shouldEditBeforeConnect()).thenReturn(true); mViewHolder = mInternetAdapter.onCreateViewHolder(new LinearLayout(mSpyContext), 0); doNothing().when(mSpyContext).startActivity(any()); mViewHolder.onWifiClick(mWifiEntry, mock(View.class)); verify(mSpyContext).startActivity(any()); } @Test public void viewHolderOnWifiClick_wifiCanConnect_connectWifi() { when(mWifiEntry.canConnect()).thenReturn(true); mViewHolder.onWifiClick(mWifiEntry, mock(View.class)); verify(mInternetDialogController).connect(mWifiEntry); } @Test public void viewHolderOnWifiClick_wifiCanNotConnectButIsSaved_launchWifiDetailsSetting() { when(mWifiEntry.canConnect()).thenReturn(false); when(mWifiEntry.isSaved()).thenReturn(true); mViewHolder.onWifiClick(mWifiEntry, mock(View.class)); verify(mInternetDialogController).launchWifiDetailsSetting(anyString(), any()); } @Test public void viewHolderUpdateEndIcon_wifiConnected_updateGearIcon() { mTestableResources.addOverride(GEAR_ICON_RES_ID, mGearIcon); Loading
packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogControllerTest.java +4 −6 Original line number Diff line number Diff line Loading @@ -385,18 +385,16 @@ public class InternetDialogControllerTest extends SysuiTestCase { } @Test public void launchWifiNetworkDetailsSetting_withNoWifiEntryKey_doNothing() { mInternetDialogController.launchWifiNetworkDetailsSetting(null /* key */, mDialogLaunchView); public void launchWifiDetailsSetting_withNoWifiEntryKey_doNothing() { mInternetDialogController.launchWifiDetailsSetting(null /* key */, mDialogLaunchView); verify(mActivityStarter, never()) .postStartActivityDismissingKeyguard(any(Intent.class), anyInt()); } @Test public void launchWifiNetworkDetailsSetting_withWifiEntryKey_startActivity() { mInternetDialogController.launchWifiNetworkDetailsSetting("wifi_entry_key", mDialogLaunchView); public void launchWifiDetailsSetting_withWifiEntryKey_startActivity() { mInternetDialogController.launchWifiDetailsSetting("wifi_entry_key", mDialogLaunchView); verify(mActivityStarter).postStartActivityDismissingKeyguard(any(Intent.class), anyInt(), any()); Loading