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

Commit 1afcfa62 authored by Fan Zhang's avatar Fan Zhang Committed by Android (Google) Code Review
Browse files

Merge "Update storage setting summary text format."

parents 979cacd7 4f9e8d4a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -7413,7 +7413,7 @@
    <string name="apps_summary_example">24 apps installed</string>
    <!-- Summary of storage usage [CHAR LIMIT=NONE] -->
    <string name="storage_summary"><xliff:g id="size1" example="8GB">%1$s</xliff:g> of <xliff:g id="size2" example="32GB">%2$s</xliff:g> used</string>
    <string name="storage_summary"><xliff:g id="percentage" example="54%">%1$s</xliff:g> used - <xliff:g id="free_space" example="32GB">%2$s</xliff:g> free</string>
    <!-- Summary of display with screen sleep timeout [CHAR LIMIT=NONE] -->
    <string name="display_summary">Sleep after <xliff:g id="timeout_description" example="10 minutes">%1$s</xliff:g> of inactivity</string>
+10 −8
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.settings.deviceinfo;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.Fragment;
import android.content.Context;
import android.content.DialogInterface;
@@ -59,10 +58,10 @@ import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
import com.android.settingslib.drawer.SettingsDrawerActivity;

import java.io.File;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;

import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;

@@ -513,10 +512,13 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
    private static class SummaryProvider implements SummaryLoader.SummaryProvider {
        private final Context mContext;
        private final SummaryLoader mLoader;
        private final StorageManagerVolumeProvider mStorageManagerVolumeProvider;

        private SummaryProvider(Context context, SummaryLoader loader) {
            mContext = context;
            mLoader = loader;
            final StorageManager storageManager = mContext.getSystemService(StorageManager.class);
            mStorageManagerVolumeProvider = new StorageManagerVolumeProvider(storageManager);
        }

        @Override
@@ -528,13 +530,13 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index

        private void updateSummary() {
            // TODO: Register listener.
            final StorageManager storageManager = mContext.getSystemService(StorageManager.class);
            PrivateStorageInfo info = PrivateStorageInfo.getPrivateStorageInfo(
                    new StorageManagerVolumeProvider(storageManager));
            long privateUsedBytes = info.totalBytes - info.freeBytes;
            final NumberFormat percentageFormat = NumberFormat.getPercentInstance();
            final PrivateStorageInfo info = PrivateStorageInfo.getPrivateStorageInfo(
                    mStorageManagerVolumeProvider);
            double privateUsedBytes = info.totalBytes - info.freeBytes;
            mLoader.setSummary(this, mContext.getString(R.string.storage_summary,
                    Formatter.formatFileSize(mContext, privateUsedBytes),
                    Formatter.formatFileSize(mContext, info.totalBytes)));
                    percentageFormat.format(privateUsedBytes / info.totalBytes),
                    Formatter.formatFileSize(mContext, info.freeBytes)));
        }
    }

+2 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;

import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;

import org.junit.Before;
@@ -27,7 +28,6 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;

import static com.google.common.truth.Truth.assertThat;
@@ -39,7 +39,7 @@ import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

@RunWith(RobolectricTestRunner.class)
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class SerialNumberPreferenceControllerTest {

+92 −0
Original line number Diff line number Diff line
/*
 * 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.deviceinfo;


import android.app.Activity;
import android.icu.text.NumberFormat;
import android.os.storage.VolumeInfo;
import android.text.format.Formatter;

import com.android.settings.R;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;

import java.util.ArrayList;
import java.util.List;

import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class StorageSettingsTest {

    @Mock
    private StorageManagerVolumeProvider mStorageManagerVolumeProvider;
    @Mock
    private Activity mActivity;

    private List<VolumeInfo> mVolumes;

    private StorageSettings mSettings;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mVolumes = new ArrayList<>();
        mVolumes.add(mock(VolumeInfo.class, RETURNS_DEEP_STUBS));
        mSettings = new StorageSettings();
        when(mStorageManagerVolumeProvider.getVolumes()).thenReturn(mVolumes);
    }

    @Test
    public void updateSummary_shouldDisplayUsedPercentAndFreeSpace() {
        final SummaryLoader loader = mock(SummaryLoader.class);
        final SummaryLoader.SummaryProvider provider =
                StorageSettings.SUMMARY_PROVIDER_FACTORY.createSummaryProvider(mActivity, loader);
        final VolumeInfo volumeInfo = mVolumes.get(0);
        when(volumeInfo.getType()).thenReturn(VolumeInfo.TYPE_PRIVATE);
        when(volumeInfo.getPath().getTotalSpace()).thenReturn(500L);
        when(volumeInfo.getPath().getFreeSpace()).thenReturn(0L);

        ReflectionHelpers.setField(
                provider, "mStorageManagerVolumeProvider", mStorageManagerVolumeProvider);
        ReflectionHelpers.setField(provider, "mContext", RuntimeEnvironment.application);

        provider.setListening(true);

        final String percentage = NumberFormat.getPercentInstance().format(1);
        final String freeSpace = Formatter.formatFileSize(RuntimeEnvironment.application, 0);
        verify(loader).setSummary(provider,
                RuntimeEnvironment.application.getString(
                        R.string.storage_summary, percentage, freeSpace));
    }
}