Merge "Hide edit menu if network is uneditable" into rvc-qpr-dev
This commit is contained in:
@@ -75,7 +75,8 @@ public class WifiNetworkDetailsFragment2 extends DashboardFragment implements
|
||||
// Interval between initiating SavedNetworkTracker scans
|
||||
private static final long SCAN_INTERVAL_MILLIS = 10_000;
|
||||
|
||||
private NetworkDetailsTracker mNetworkDetailsTracker;
|
||||
@VisibleForTesting
|
||||
NetworkDetailsTracker mNetworkDetailsTracker;
|
||||
private HandlerThread mWorkerThread;
|
||||
private WifiDetailPreferenceController2 mWifiDetailPreferenceController2;
|
||||
private List<WifiDialog2.WifiDialog2Listener> mWifiDialogListeners = new ArrayList<>();
|
||||
@@ -125,9 +126,11 @@ public class WifiNetworkDetailsFragment2 extends DashboardFragment implements
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
MenuItem item = menu.add(0, Menu.FIRST, 0, R.string.wifi_modify);
|
||||
item.setIcon(com.android.internal.R.drawable.ic_mode_edit);
|
||||
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||
if (isEditable()) {
|
||||
MenuItem item = menu.add(0, Menu.FIRST, 0, R.string.wifi_modify);
|
||||
item.setIcon(com.android.internal.R.drawable.ic_mode_edit);
|
||||
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||
}
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
}
|
||||
|
||||
@@ -253,6 +256,17 @@ public class WifiNetworkDetailsFragment2 extends DashboardFragment implements
|
||||
getArguments().getString(KEY_CHOSEN_WIFIENTRY_KEY));
|
||||
}
|
||||
|
||||
private boolean isEditable() {
|
||||
if (mNetworkDetailsTracker == null) {
|
||||
return false;
|
||||
}
|
||||
final WifiEntry wifiEntry = mNetworkDetailsTracker.getWifiEntry();
|
||||
if (wifiEntry == null) {
|
||||
return false;
|
||||
}
|
||||
return wifiEntry.isSaved();
|
||||
}
|
||||
|
||||
/**
|
||||
* API call for refreshing the preferences in this fragment.
|
||||
*/
|
||||
|
@@ -24,9 +24,9 @@ import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.view.Menu;
|
||||
@@ -36,12 +36,17 @@ import android.view.MenuItem;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.wifitrackerlib.NetworkDetailsTracker;
|
||||
import com.android.wifitrackerlib.WifiEntry;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
@@ -52,11 +57,22 @@ public class WifiNetworkDetailsFragment2Test {
|
||||
|
||||
final String TEST_PREFERENCE_KEY = "TEST_PREFERENCE_KEY";
|
||||
|
||||
@Mock
|
||||
WifiEntry mWifiEntry;
|
||||
@Mock
|
||||
NetworkDetailsTracker mNetworkDetailsTracker;
|
||||
@Mock
|
||||
Menu mMenu;
|
||||
private WifiNetworkDetailsFragment2 mFragment;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
doReturn(mWifiEntry).when(mNetworkDetailsTracker).getWifiEntry();
|
||||
doReturn(true).when(mWifiEntry).isSaved();
|
||||
|
||||
mFragment = new WifiNetworkDetailsFragment2();
|
||||
mFragment.mNetworkDetailsTracker = mNetworkDetailsTracker;
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -77,15 +93,23 @@ public class WifiNetworkDetailsFragment2Test {
|
||||
|
||||
@Test
|
||||
public void onCreateOptionsMenu_shouldSetCorrectIcon() {
|
||||
final Menu menu = mock(Menu.class);
|
||||
final MenuItem menuItem = mock(MenuItem.class);
|
||||
doReturn(menuItem).when(menu).add(anyInt(), eq(Menu.FIRST), anyInt(), anyInt());
|
||||
doReturn(menuItem).when(mMenu).add(anyInt(), eq(Menu.FIRST), anyInt(), anyInt());
|
||||
|
||||
mFragment.onCreateOptionsMenu(menu, mock(MenuInflater.class));
|
||||
mFragment.onCreateOptionsMenu(mMenu, mock(MenuInflater.class));
|
||||
|
||||
verify(menuItem).setIcon(com.android.internal.R.drawable.ic_mode_edit);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onCreateOptionsMenu_isNotSavedNetwork_shouldNotAddEditMenu() {
|
||||
doReturn(false).when(mWifiEntry).isSaved();
|
||||
|
||||
mFragment.onCreateOptionsMenu(mMenu, mock(MenuInflater.class));
|
||||
|
||||
verify(mMenu, never()).add(anyInt(), anyInt(), anyInt(), eq(R.string.wifi_modify));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void refreshPreferences_controllerShouldUpdateStateAndDisplayPreference() {
|
||||
final FakeFragment fragment = spy(new FakeFragment());
|
||||
|
Reference in New Issue
Block a user