Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1beae1bf authored by Arc Wang's avatar Arc Wang
Browse files

Set storage volume spinner invsible when only 1 volume

Bug: 189390166
Test: atest StorageSelectionPreferenceControllerTest
Change-Id: I93e5fbf50153580ec60c146959d21e61f556c18c
parent 367fe0ea
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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
+35 −10
Original line number Diff line number Diff line
@@ -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();
    }
}