Set storage volume spinner invsible when only 1 volume
Bug: 189390166 Test: atest StorageSelectionPreferenceControllerTest Change-Id: I93e5fbf50153580ec60c146959d21e61f556c18c
This commit is contained in:
@@ -75,7 +75,7 @@ public class StorageSelectionPreferenceController extends BasePreferenceControll
|
||||
mStorageAdapter.addAll(storageEntries);
|
||||
|
||||
if (mSpinnerPreference != null) {
|
||||
mSpinnerPreference.setClickable(mStorageAdapter.getCount() > 1);
|
||||
mSpinnerPreference.setVisible(mStorageAdapter.getCount() > 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ public class StorageSelectionPreferenceController extends BasePreferenceControll
|
||||
mSpinnerPreference = screen.findPreference(getPreferenceKey());
|
||||
mSpinnerPreference.setAdapter(mStorageAdapter);
|
||||
mSpinnerPreference.setOnItemSelectedListener(this);
|
||||
mSpinnerPreference.setClickable(mStorageAdapter.getCount() > 1);
|
||||
mSpinnerPreference.setVisible(mStorageAdapter.getCount() > 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -18,6 +18,8 @@ package com.android.settings.deviceinfo.storage;
|
||||
|
||||
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.Before;
|
||||
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 @@ public class StorageSelectionPreferenceControllerTest {
|
||||
|
||||
@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 @@ public class StorageSelectionPreferenceControllerTest {
|
||||
|
||||
@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 @@ public class StorageSelectionPreferenceControllerTest {
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user