To hide sorting animation.
- Storage Settings always loads cache and updates UI, then
loads storage size and updates UI.
Remove the chche design because storage category preferences
will hide during loading, it no meaning to load from cache
and update UI.
- Hides loading circle before storage category preferences
become visible, it prevents flickers.
- Remove Calculating... summary of StorageItemPreference.
- Private storage category preferences and secondary user
preference become visible at
StorageItemPreferenceController#onLoadFinished.
Bug: 188731179
Bug: 185547228
Bug: 188615591
Test: atest com.android.settings.deviceinfo
atest com.android.settings.deviceinfo.storage
make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo
make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo.storage
manual visual
Change-Id: I3ebef5829ef4f806add07f58fa02520804768be5
79 lines
2.3 KiB
Java
79 lines
2.3 KiB
Java
/*
|
|
* 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;
|
|
|
|
import android.content.Context;
|
|
import android.util.AttributeSet;
|
|
import android.widget.ProgressBar;
|
|
|
|
import androidx.preference.Preference;
|
|
import androidx.preference.PreferenceViewHolder;
|
|
|
|
import com.android.settings.R;
|
|
import com.android.settings.deviceinfo.storage.StorageUtils;
|
|
|
|
public class StorageItemPreference extends Preference {
|
|
public int userHandle;
|
|
|
|
private static final int UNINITIALIZED = -1;
|
|
|
|
private ProgressBar mProgressBar;
|
|
private static final int PROGRESS_MAX = 100;
|
|
private int mProgressPercent = UNINITIALIZED;
|
|
private long mStorageSize;
|
|
|
|
public StorageItemPreference(Context context) {
|
|
this(context, null);
|
|
}
|
|
|
|
public StorageItemPreference(Context context, AttributeSet attrs) {
|
|
super(context, attrs);
|
|
setLayoutResource(R.layout.storage_item);
|
|
}
|
|
|
|
public void setStorageSize(long size, long total) {
|
|
mStorageSize = size;
|
|
setSummary(StorageUtils.getStorageSizeLabel(getContext(), size));
|
|
|
|
if (total == 0) {
|
|
mProgressPercent = 0;
|
|
} else {
|
|
mProgressPercent = (int)(size * PROGRESS_MAX / total);
|
|
}
|
|
updateProgressBar();
|
|
}
|
|
|
|
public long getStorageSize() {
|
|
return mStorageSize;
|
|
}
|
|
|
|
protected void updateProgressBar() {
|
|
if (mProgressBar == null || mProgressPercent == UNINITIALIZED)
|
|
return;
|
|
|
|
mProgressBar.setMax(PROGRESS_MAX);
|
|
mProgressBar.setProgress(mProgressPercent);
|
|
}
|
|
|
|
@Override
|
|
public void onBindViewHolder(PreferenceViewHolder view) {
|
|
mProgressBar = (ProgressBar) view.findViewById(android.R.id.progress);
|
|
updateProgressBar();
|
|
super.onBindViewHolder(view);
|
|
}
|
|
}
|