diff --git a/res/layout/storage_item.xml b/res/layout/storage_item.xml index de735431103..520f5cec58a 100644 --- a/res/layout/storage_item.xml +++ b/res/layout/storage_item.xml @@ -31,25 +31,25 @@ android:layout_height="wrap_content" android:orientation="horizontal"> - + - + diff --git a/res/layout/storage_item_alternate.xml b/res/layout/storage_item_alternate.xml deleted file mode 100644 index b41c82b7ce7..00000000000 --- a/res/layout/storage_item_alternate.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - diff --git a/res/xml/storage_dashboard_fragment.xml b/res/xml/storage_dashboard_fragment.xml index bf8483f53ea..64a2aba675a 100644 --- a/res/xml/storage_dashboard_fragment.xml +++ b/res/xml/storage_dashboard_fragment.xml @@ -30,28 +30,28 @@ android:order="1" settings:allowDividerAbove="true" settings:allowDividerBelow="true"/> - - + - - - - diff --git a/res/xml/storage_profile_fragment.xml b/res/xml/storage_profile_fragment.xml index d0c5c3ac271..c6757447cef 100644 --- a/res/xml/storage_profile_fragment.xml +++ b/res/xml/storage_profile_fragment.xml @@ -18,24 +18,24 @@ - - - + - - + - - + - - + - + diff --git a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java index 133c56ca601..18393acba64 100644 --- a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java +++ b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java @@ -114,6 +114,16 @@ public class StorageDashboardFragment extends DashboardFragment mSummaryController.updateBytes(usedBytes, totalSize); mPreferenceController.setVolume(mVolume); mPreferenceController.setSystemSize(systemSize); + + mPreferenceController.setTotalSize(totalSize); + for (int i = 0, size = mSecondaryUsers.size(); i < size; i++) { + PreferenceController controller = mSecondaryUsers.get(i); + if (controller instanceof SecondaryUserController) { + SecondaryUserController userController = (SecondaryUserController) controller; + userController.setTotalSize(totalSize); + + } + } } @Override diff --git a/src/com/android/settings/deviceinfo/StorageItemPreference.java b/src/com/android/settings/deviceinfo/StorageItemPreference.java index b15794e3059..763b6d4bda8 100644 --- a/src/com/android/settings/deviceinfo/StorageItemPreference.java +++ b/src/com/android/settings/deviceinfo/StorageItemPreference.java @@ -20,6 +20,7 @@ import android.content.Context; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceViewHolder; import android.text.format.Formatter; +import android.util.AttributeSet; import android.view.View; import android.widget.ProgressBar; @@ -28,13 +29,18 @@ import com.android.settings.R; public class StorageItemPreference extends Preference { public int userHandle; - private ProgressBar progressBar; + private ProgressBar mProgressBar; private static final int PROGRESS_MAX = 100; - private int progress = -1; + private int mProgressPercent = -1; public StorageItemPreference(Context context) { - super(context); + this(context, null); + } + + public StorageItemPreference(Context context, AttributeSet attrs) { + super(context, attrs); setLayoutResource(R.layout.storage_item); + setSummary(R.string.memory_calculating_size); } public void setStorageSize(long size, long total) { @@ -42,30 +48,30 @@ public class StorageItemPreference extends Preference { ? String.valueOf(0) : Formatter.formatFileSize(getContext(), size)); if (total == 0) { - progress = 0; + mProgressPercent = 0; } else { - progress = (int)(size * PROGRESS_MAX / total); + mProgressPercent = (int)(size * PROGRESS_MAX / total); } updateProgressBar(); } protected void updateProgressBar() { - if (progressBar == null) + if (mProgressBar == null) return; - if (progress == -1) { - progressBar.setVisibility(View.GONE); + if (mProgressPercent == -1) { + mProgressBar.setVisibility(View.GONE); return; } - progressBar.setVisibility(View.VISIBLE); - progressBar.setMax(PROGRESS_MAX); - progressBar.setProgress(progress); + mProgressBar.setVisibility(View.VISIBLE); + mProgressBar.setMax(PROGRESS_MAX); + mProgressBar.setProgress(mProgressPercent); } @Override public void onBindViewHolder(PreferenceViewHolder view) { - progressBar = (ProgressBar) view.findViewById(android.R.id.progress); + mProgressBar = (ProgressBar) view.findViewById(android.R.id.progress); updateProgressBar(); super.onBindViewHolder(view); } diff --git a/src/com/android/settings/deviceinfo/storage/SecondaryUserController.java b/src/com/android/settings/deviceinfo/storage/SecondaryUserController.java index 4fd9e522fd0..eb589ca848e 100644 --- a/src/com/android/settings/deviceinfo/storage/SecondaryUserController.java +++ b/src/com/android/settings/deviceinfo/storage/SecondaryUserController.java @@ -28,6 +28,7 @@ import android.util.SparseArray; import com.android.settings.Utils; import com.android.settings.applications.UserManagerWrapper; import com.android.settings.core.PreferenceController; +import com.android.settings.deviceinfo.StorageItemPreference; import java.util.ArrayList; import java.util.List; @@ -46,8 +47,9 @@ public class SecondaryUserController extends PreferenceController implements private static final int SIZE_NOT_SET = -1; private @NonNull UserInfo mUser; - private @Nullable StorageItemPreferenceAlternate mStoragePreference; + private @Nullable StorageItemPreference mStoragePreference; private long mSize; + private long mTotalSizeBytes; /** * Adds the appropriate controllers to a controller list for handling all secondary users on @@ -98,14 +100,14 @@ public class SecondaryUserController extends PreferenceController implements @Override public void displayPreference(PreferenceScreen screen) { if (mStoragePreference == null) { - mStoragePreference = new StorageItemPreferenceAlternate(screen.getContext()); + mStoragePreference = new StorageItemPreference(screen.getContext()); PreferenceGroup group = (PreferenceGroup) screen.findPreference(TARGET_PREFERENCE_GROUP_KEY); mStoragePreference.setTitle(mUser.name); mStoragePreference.setKey(PREFERENCE_KEY_BASE + mUser.id); if (mSize != SIZE_NOT_SET) { - mStoragePreference.setStorageSize(mSize); + mStoragePreference.setStorageSize(mSize, mTotalSizeBytes); } group.setVisible(true); group.addPreference(mStoragePreference); @@ -137,10 +139,18 @@ public class SecondaryUserController extends PreferenceController implements public void setSize(long size) { mSize = size; if (mStoragePreference != null) { - mStoragePreference.setStorageSize(mSize); + mStoragePreference.setStorageSize(mSize, mTotalSizeBytes); } } + /** + * Sets the total size for the preference for the progress bar. + * @param totalSizeBytes Total size in bytes. + */ + public void setTotalSize(long totalSizeBytes) { + mTotalSizeBytes = totalSizeBytes; + } + public void handleResult(SparseArray stats) { int userId = getUser().id; StorageAsyncLoader.AppsStorageResult result = stats.get(userId); diff --git a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceAlternate.java b/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceAlternate.java deleted file mode 100644 index d5a36b92cad..00000000000 --- a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceAlternate.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.deviceinfo.storage; - -import android.content.Context; -import android.support.v7.preference.Preference; -import android.text.format.Formatter; -import android.util.AttributeSet; - -import com.android.settings.R; - -public class StorageItemPreferenceAlternate extends Preference { - public StorageItemPreferenceAlternate(Context context) { - this(context, null); - } - - public StorageItemPreferenceAlternate(Context context, AttributeSet attrs) { - super(context, attrs); - setLayoutResource(R.layout.storage_item_alternate); - setSummary(R.string.memory_calculating_size); - } - - public void setStorageSize(long size) { - setSummary(size == 0 - ? String.valueOf(0) - : Formatter.formatFileSize(getContext(), size)); - } -} \ No newline at end of file diff --git a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java b/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java index 36cf73e4a81..eec9487d574 100644 --- a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java +++ b/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java @@ -35,6 +35,7 @@ import com.android.settings.Utils; import com.android.settings.applications.ManageApplications; import com.android.settings.core.PreferenceController; import com.android.settings.core.instrumentation.MetricsFeatureProvider; +import com.android.settings.deviceinfo.StorageItemPreference; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.deviceinfo.StorageMeasurement; import com.android.settingslib.deviceinfo.StorageVolumeProvider; @@ -71,13 +72,14 @@ public class StorageItemPreferenceController extends PreferenceController { private VolumeInfo mVolume; private int mUserId; private long mSystemSize; + private long mTotalSize; - private StorageItemPreferenceAlternate mPhotoPreference; - private StorageItemPreferenceAlternate mAudioPreference; - private StorageItemPreferenceAlternate mGamePreference; - private StorageItemPreferenceAlternate mAppPreference; - private StorageItemPreferenceAlternate mFilePreference; - private StorageItemPreferenceAlternate mSystemPreference; + private StorageItemPreference mPhotoPreference; + private StorageItemPreference mAudioPreference; + private StorageItemPreference mGamePreference; + private StorageItemPreference mAppPreference; + private StorageItemPreference mFilePreference; + private StorageItemPreference mSystemPreference; private static final String AUTHORITY_MEDIA = "com.android.providers.media.documents"; @@ -164,37 +166,38 @@ public class StorageItemPreferenceController extends PreferenceController { @Override public void displayPreference(PreferenceScreen screen) { - mPhotoPreference = (StorageItemPreferenceAlternate) screen.findPreference(PHOTO_KEY); - mAudioPreference = (StorageItemPreferenceAlternate) screen.findPreference(AUDIO_KEY); - mGamePreference = (StorageItemPreferenceAlternate) screen.findPreference(GAME_KEY); - mAppPreference = (StorageItemPreferenceAlternate) screen.findPreference(OTHER_APPS_KEY); - mSystemPreference = (StorageItemPreferenceAlternate) screen.findPreference(SYSTEM_KEY); - mFilePreference = (StorageItemPreferenceAlternate) screen.findPreference(FILES_KEY); + mPhotoPreference = (StorageItemPreference) screen.findPreference(PHOTO_KEY); + mAudioPreference = (StorageItemPreference) screen.findPreference(AUDIO_KEY); + mGamePreference = (StorageItemPreference) screen.findPreference(GAME_KEY); + mAppPreference = (StorageItemPreference) screen.findPreference(OTHER_APPS_KEY); + mSystemPreference = (StorageItemPreference) screen.findPreference(SYSTEM_KEY); + mFilePreference = (StorageItemPreference) screen.findPreference(FILES_KEY); } public void onLoadFinished(StorageAsyncLoader.AppsStorageResult data) { // TODO(b/35927909): Figure out how to split out apps which are only installed for work // profiles in order to attribute those app's code bytes only to that profile. mPhotoPreference.setStorageSize( - data.externalStats.imageBytes + data.externalStats.videoBytes); - mAudioPreference.setStorageSize(data.musicAppsSize + data.externalStats.audioBytes); - mGamePreference.setStorageSize(data.gamesSize); - mAppPreference.setStorageSize(data.otherAppsSize); + data.externalStats.imageBytes + data.externalStats.videoBytes, mTotalSize); + mAudioPreference.setStorageSize( + data.musicAppsSize + data.externalStats.audioBytes, mTotalSize); + mGamePreference.setStorageSize(data.gamesSize, mTotalSize); + mAppPreference.setStorageSize(data.otherAppsSize, mTotalSize); if (mSystemPreference != null) { - mSystemPreference.setStorageSize(mSystemSize + data.systemSize); + mSystemPreference.setStorageSize(mSystemSize + data.systemSize, mTotalSize); } long unattributedBytes = data.externalStats.totalBytes - data.externalStats.audioBytes - data.externalStats.videoBytes - data.externalStats.imageBytes; - mFilePreference.setStorageSize(unattributedBytes); + mFilePreference.setStorageSize(unattributedBytes, mTotalSize); } - /** - * Sets the system size for the system size preference. - * @param systemSize the size of the system in bytes - */ - public void setSystemSize(long systemSize) { - mSystemSize = systemSize; + public void setSystemSize(long systemSizeBytes) { + mSystemSize = systemSizeBytes; + } + + public void setTotalSize(long totalSizeBytes) { + mTotalSize = totalSizeBytes; } /** diff --git a/src/com/android/settings/deviceinfo/storage/UserProfileController.java b/src/com/android/settings/deviceinfo/storage/UserProfileController.java index 963784d6fdf..ef8b21e6dbd 100644 --- a/src/com/android/settings/deviceinfo/storage/UserProfileController.java +++ b/src/com/android/settings/deviceinfo/storage/UserProfileController.java @@ -29,6 +29,7 @@ import com.android.internal.logging.nano.MetricsProto; import com.android.internal.util.Preconditions; import com.android.settings.Utils; import com.android.settings.core.PreferenceController; +import com.android.settings.deviceinfo.StorageItemPreference; import com.android.settings.deviceinfo.StorageProfileFragment; import com.android.settingslib.drawer.SettingsDrawerActivity; @@ -38,8 +39,9 @@ import com.android.settingslib.drawer.SettingsDrawerActivity; public class UserProfileController extends PreferenceController implements StorageAsyncLoader.ResultHandler { private static final String PREFERENCE_KEY_BASE = "pref_profile_"; - private StorageItemPreferenceAlternate mStoragePreference; + private StorageItemPreference mStoragePreference; private UserInfo mUser; + private long mTotalSizeBytes; private final int mPreferenceOrder; public UserProfileController(Context context, UserInfo info, int preferenceOrder) { @@ -60,7 +62,7 @@ public class UserProfileController extends PreferenceController implements @Override public void displayPreference(PreferenceScreen screen) { - mStoragePreference = new StorageItemPreferenceAlternate(screen.getContext()); + mStoragePreference = new StorageItemPreference(screen.getContext()); mStoragePreference.setOrder(mPreferenceOrder); mStoragePreference.setKey(PREFERENCE_KEY_BASE + mUser.id); mStoragePreference.setTitle(mUser.name); @@ -91,16 +93,20 @@ public class UserProfileController extends PreferenceController implements int userId = mUser.id; StorageAsyncLoader.AppsStorageResult result = stats.get(userId); if (result != null) { - setSize(result.externalStats.totalBytes); + setSize(result.externalStats.totalBytes, mTotalSizeBytes); } } /** * Sets the size for the preference using a byte count. */ - public void setSize(long size) { + public void setSize(long size, long totalSize) { if (mStoragePreference != null) { - mStoragePreference.setStorageSize(size); + mStoragePreference.setStorageSize(size, totalSize); } } + + public void setTotalSize(long totalSize) { + mTotalSizeBytes = totalSize; + } } diff --git a/tests/robotests/src/com/android/settings/TestUtils.java b/tests/robotests/src/com/android/settings/TestUtils.java new file mode 100644 index 00000000000..16d35f3622d --- /dev/null +++ b/tests/robotests/src/com/android/settings/TestUtils.java @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.settings; + +/** + * Convenience methods and constants for testing. + */ +public class TestUtils { + public static final long KILOBYTE = 1024L; // TODO: Change to 1000 in O Robolectric. + public static final long MEGABYTE = KILOBYTE * KILOBYTE; + public static final long GIGABYTE = KILOBYTE * MEGABYTE; +} diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceAlternateTest.java b/tests/robotests/src/com/android/settings/deviceinfo/StorageItemPreferenceTest.java similarity index 57% rename from tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceAlternateTest.java rename to tests/robotests/src/com/android/settings/deviceinfo/StorageItemPreferenceTest.java index d2fc504a5fc..f9d26c7fb4e 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceAlternateTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/StorageItemPreferenceTest.java @@ -13,11 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License */ -package com.android.settings.deviceinfo.storage; +package com.android.settings.deviceinfo; + +import static com.android.settings.TestUtils.KILOBYTE; import static com.google.common.truth.Truth.assertThat; import android.content.Context; +import android.support.v7.preference.PreferenceViewHolder; +import android.view.LayoutInflater; +import android.widget.ProgressBar; import com.android.settings.R; import com.android.settings.SettingsRobolectricTestRunner; @@ -29,28 +34,41 @@ import org.junit.runner.RunWith; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; - @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) -public class StorageItemPreferenceAlternateTest { +public class StorageItemPreferenceTest { private Context mContext; + private StorageItemPreference mPreference; @Before public void setUp() throws Exception { mContext = RuntimeEnvironment.application; + mPreference = new StorageItemPreference(mContext); } @Test public void testBeforeLoad() { - StorageItemPreferenceAlternate pref = new StorageItemPreferenceAlternate(mContext); - assertThat(((String) pref.getSummary())).isEqualTo( + assertThat(mPreference.getSummary()).isEqualTo( mContext.getString(R.string.memory_calculating_size)); } @Test public void testAfterLoad() { - StorageItemPreferenceAlternate pref = new StorageItemPreferenceAlternate(mContext); - pref.setStorageSize(1024L); - assertThat(((String) pref.getSummary())).isEqualTo("1.00KB"); + mPreference.setStorageSize(KILOBYTE, KILOBYTE * 10); + assertThat(((String) mPreference.getSummary())).isEqualTo("1.00KB"); } + + @Test + public void testProgressBarPercentageSet() { + final PreferenceViewHolder holder = new PreferenceViewHolder( + LayoutInflater.from(mContext).inflate(R.layout.storage_item, null)); + final ProgressBar progressBar = + (ProgressBar) holder.itemView.findViewById(android.R.id.progress); + + mPreference.onBindViewHolder(holder); + mPreference.setStorageSize(KILOBYTE, KILOBYTE * 10); + + assertThat(progressBar.getProgress()).isEqualTo(10); + } + } \ No newline at end of file diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java index 961a6c757d3..387bc43a9af 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java @@ -15,6 +15,8 @@ */ package com.android.settings.deviceinfo.storage; +import static com.android.settings.TestUtils.KILOBYTE; + import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.any; @@ -43,6 +45,7 @@ import com.android.settings.SubSettings; import com.android.settings.TestConfig; import com.android.settings.applications.ManageApplications; import com.android.settings.core.instrumentation.MetricsFeatureProvider; +import com.android.settings.deviceinfo.StorageItemPreference; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.deviceinfo.StorageVolumeProvider; @@ -60,11 +63,6 @@ import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class StorageItemPreferenceControllerTest { - /** - * In O, this will change to 1000 instead of 1024 due to the formatter properly defining a - * kilobyte. - */ - private static long KILOBYTE = 1024L; private Context mContext; private VolumeInfo mVolume; @Mock(answer = Answers.RETURNS_DEEP_STUBS) @@ -72,7 +70,7 @@ public class StorageItemPreferenceControllerTest { @Mock private StorageVolumeProvider mSvp; private StorageItemPreferenceController mController; - private StorageItemPreferenceAlternate mPreference; + private StorageItemPreference mPreference; private FakeFeatureFactory mFakeFeatureFactory; private MetricsFeatureProvider mMetricsFeatureProvider; @@ -87,7 +85,7 @@ public class StorageItemPreferenceControllerTest { // Note: null is passed as the Lifecycle because we are handling it outside of the normal // Settings fragment lifecycle for test purposes. mController = new StorageItemPreferenceController(mContext, mFragment, mVolume, mSvp); - mPreference = new StorageItemPreferenceAlternate(mContext); + mPreference = new StorageItemPreference(mContext); // Inflate the preference and the widget. LayoutInflater inflater = LayoutInflater.from(mContext); @@ -190,12 +188,12 @@ public class StorageItemPreferenceControllerTest { @Test public void testMeasurementCompletedUpdatesPreferences() { - StorageItemPreferenceAlternate audio = new StorageItemPreferenceAlternate(mContext); - StorageItemPreferenceAlternate image = new StorageItemPreferenceAlternate(mContext); - StorageItemPreferenceAlternate games = new StorageItemPreferenceAlternate(mContext); - StorageItemPreferenceAlternate apps = new StorageItemPreferenceAlternate(mContext); - StorageItemPreferenceAlternate system = new StorageItemPreferenceAlternate(mContext); - StorageItemPreferenceAlternate files = new StorageItemPreferenceAlternate(mContext); + StorageItemPreference audio = new StorageItemPreference(mContext); + StorageItemPreference image = new StorageItemPreference(mContext); + StorageItemPreference games = new StorageItemPreference(mContext); + StorageItemPreference apps = new StorageItemPreference(mContext); + StorageItemPreference system = new StorageItemPreference(mContext); + StorageItemPreference files = new StorageItemPreference(mContext); PreferenceScreen screen = mock(PreferenceScreen.class); when(screen.findPreference( eq(StorageItemPreferenceController.AUDIO_KEY))).thenReturn(audio); diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java index 2c091f27893..444a0d116f2 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java @@ -52,12 +52,13 @@ import org.robolectric.annotation.Config; import java.io.File; +import static com.android.settings.TestUtils.KILOBYTE; +import static com.android.settings.TestUtils.MEGABYTE; +import static com.android.settings.TestUtils.GIGABYTE; + @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class StorageSummaryDonutPreferenceControllerTest { - private static final long KILOBYTE = 1024; // Note: When O comes around, this value changes! - private static final long MEGABYTE = KILOBYTE * KILOBYTE; - private static final long GIGABYTE = KILOBYTE * MEGABYTE; private Context mContext; private StorageSummaryDonutPreferenceController mController; private StorageSummaryDonutPreference mPreference;