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);
|
mStorageAdapter.addAll(storageEntries);
|
||||||
|
|
||||||
if (mSpinnerPreference != null) {
|
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 = screen.findPreference(getPreferenceKey());
|
||||||
mSpinnerPreference.setAdapter(mStorageAdapter);
|
mSpinnerPreference.setAdapter(mStorageAdapter);
|
||||||
mSpinnerPreference.setOnItemSelectedListener(this);
|
mSpinnerPreference.setOnItemSelectedListener(this);
|
||||||
mSpinnerPreference.setClickable(mStorageAdapter.getCount() > 1);
|
mSpinnerPreference.setVisible(mStorageAdapter.getCount() > 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -18,6 +18,8 @@ package com.android.settings.deviceinfo.storage;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.storage.StorageManager;
|
import android.os.storage.StorageManager;
|
||||||
@@ -33,6 +35,7 @@ import org.junit.Before;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -47,9 +50,20 @@ public class StorageSelectionPreferenceControllerTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
|
if (Looper.myLooper() == null) {
|
||||||
|
Looper.prepare();
|
||||||
|
}
|
||||||
mContext = ApplicationProvider.getApplicationContext();
|
mContext = ApplicationProvider.getApplicationContext();
|
||||||
mStorageManager = mContext.getSystemService(StorageManager.class);
|
mStorageManager = mContext.getSystemService(StorageManager.class);
|
||||||
mController = new StorageSelectionPreferenceController(mContext, PREFERENCE_KEY);
|
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
|
@Test
|
||||||
@@ -70,16 +84,6 @@ public class StorageSelectionPreferenceControllerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void setSelectedStorageEntry_primaryStorage_correctSelectedAdapterItem() {
|
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 =
|
final StorageEntry primaryStorageEntry =
|
||||||
StorageEntry.getDefaultInternalStorageEntry(mContext);
|
StorageEntry.getDefaultInternalStorageEntry(mContext);
|
||||||
mController.setStorageEntries(mStorageManager.getVolumes().stream()
|
mController.setStorageEntries(mStorageManager.getVolumes().stream()
|
||||||
@@ -91,5 +95,26 @@ public class StorageSelectionPreferenceControllerTest {
|
|||||||
assertThat((StorageEntry) mController.mSpinnerPreference.getSelectedItem())
|
assertThat((StorageEntry) mController.mSpinnerPreference.getSelectedItem())
|
||||||
.isEqualTo(primaryStorageEntry);
|
.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