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);
|
|
}
|
|
}
|