Set storage volume spinner invsible when only 1 volume
Bug: 189390166
Test: atest StorageSelectionPreferenceControllerTest
Change-Id: I93e5fbf50153580ec60c146959d21e61f556c18c
diff --git a/src/com/android/settings/deviceinfo/storage/StorageSelectionPreferenceController.java b/src/com/android/settings/deviceinfo/storage/StorageSelectionPreferenceController.java
index 2ab0239..5d5a2a5 100644
--- a/src/com/android/settings/deviceinfo/storage/StorageSelectionPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/StorageSelectionPreferenceController.java
@@ -75,7 +75,7 @@
mStorageAdapter.addAll(storageEntries);
if (mSpinnerPreference != null) {
- mSpinnerPreference.setClickable(mStorageAdapter.getCount() > 1);
+ mSpinnerPreference.setVisible(mStorageAdapter.getCount() > 1);
}
}
@@ -97,7 +97,7 @@
mSpinnerPreference = screen.findPreference(getPreferenceKey());
mSpinnerPreference.setAdapter(mStorageAdapter);
mSpinnerPreference.setOnItemSelectedListener(this);
- mSpinnerPreference.setClickable(mStorageAdapter.getCount() > 1);
+ mSpinnerPreference.setVisible(mStorageAdapter.getCount() > 1);
}
@Override
diff --git a/tests/unit/src/com/android/settings/deviceinfo/storage/StorageSelectionPreferenceControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/storage/StorageSelectionPreferenceControllerTest.java
index 86351cb..f4661ef 100644
--- a/tests/unit/src/com/android/settings/deviceinfo/storage/StorageSelectionPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/deviceinfo/storage/StorageSelectionPreferenceControllerTest.java
@@ -18,6 +18,8 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+
import android.content.Context;
import android.os.Looper;
import android.os.storage.StorageManager;
@@ -33,6 +35,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
+import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -47,9 +50,20 @@
@Before
public void setUp() throws Exception {
+ if (Looper.myLooper() == null) {
+ Looper.prepare();
+ }
mContext = ApplicationProvider.getApplicationContext();
mStorageManager = mContext.getSystemService(StorageManager.class);
mController = new StorageSelectionPreferenceController(mContext, PREFERENCE_KEY);
+
+ final PreferenceManager preferenceManager = new PreferenceManager(mContext);
+ final PreferenceScreen preferenceScreen =
+ preferenceManager.createPreferenceScreen(mContext);
+ final SettingsSpinnerPreference spinnerPreference = new SettingsSpinnerPreference(mContext);
+ spinnerPreference.setKey(PREFERENCE_KEY);
+ preferenceScreen.addPreference(spinnerPreference);
+ mController.displayPreference(preferenceScreen);
}
@Test
@@ -70,16 +84,6 @@
@Test
public void setSelectedStorageEntry_primaryStorage_correctSelectedAdapterItem() {
- if (Looper.myLooper() == null) {
- Looper.prepare();
- }
- final PreferenceManager preferenceManager = new PreferenceManager(mContext);
- final PreferenceScreen preferenceScreen =
- preferenceManager.createPreferenceScreen(mContext);
- final SettingsSpinnerPreference spinnerPreference = new SettingsSpinnerPreference(mContext);
- spinnerPreference.setKey(PREFERENCE_KEY);
- preferenceScreen.addPreference(spinnerPreference);
- mController.displayPreference(preferenceScreen);
final StorageEntry primaryStorageEntry =
StorageEntry.getDefaultInternalStorageEntry(mContext);
mController.setStorageEntries(mStorageManager.getVolumes().stream()
@@ -91,5 +95,26 @@
assertThat((StorageEntry) mController.mSpinnerPreference.getSelectedItem())
.isEqualTo(primaryStorageEntry);
}
+
+ @Test
+ public void setStorageEntries_1StorageEntry_preferenceInvisible() {
+ final List<StorageEntry> storageEntries = new ArrayList<>();
+ storageEntries.add(mock(StorageEntry.class));
+
+ mController.setStorageEntries(storageEntries);
+
+ assertThat(mController.mSpinnerPreference.isVisible()).isFalse();
+ }
+
+ @Test
+ public void setStorageEntries_2StorageEntries_preferenceVisible() {
+ final List<StorageEntry> storageEntries = new ArrayList<>();
+ storageEntries.add(mock(StorageEntry.class));
+ storageEntries.add(mock(StorageEntry.class));
+
+ mController.setStorageEntries(storageEntries);
+
+ assertThat(mController.mSpinnerPreference.isVisible()).isTrue();
+ }
}