Reduce jank around loading view when opening data usage UI

Change-Id: I3d23d8160b046de8fe125ba0697b7b3d7786453c
Fix: 28181319
Test: robotests
This commit is contained in:
Fan Zhang
2017-06-26 14:22:45 -07:00
parent c26ae0677e
commit 896f1b363c
8 changed files with 227 additions and 86 deletions

View File

@@ -50,6 +50,7 @@ import android.widget.Spinner;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.datausage.CycleAdapter.SpinnerInterface;
import com.android.settings.widget.LoadingViewController;
import com.android.settingslib.AppItem;
import com.android.settingslib.net.ChartData;
import com.android.settingslib.net.ChartDataLoader;
@@ -96,13 +97,13 @@ public class DataUsageList extends DataUsageBase {
};
private INetworkStatsSession mStatsSession;
private ChartDataUsagePreference mChart;
private NetworkTemplate mTemplate;
private int mSubId;
private ChartData mChartData;
private LoadingViewController mLoadingViewController;
private UidDetailProvider mUidDetailProvider;
private CycleAdapter mCycleAdapter;
private Spinner mCycleSpinner;
@@ -110,6 +111,7 @@ public class DataUsageList extends DataUsageBase {
private PreferenceGroup mApps;
private View mHeader;
@Override
public int getMetricsCategory() {
return MetricsEvent.DATA_USAGE_LIST;
@@ -176,7 +178,10 @@ public class DataUsageList extends DataUsageBase {
mCycleSpinner.setSelection(position);
}
}, mCycleListener, true);
setLoading(true, false);
mLoadingViewController = new LoadingViewController(
getView().findViewById(R.id.loading_container), getListView());
mLoadingViewController.showLoadingViewDelayed();
}
@Override
@@ -523,7 +528,7 @@ public class DataUsageList extends DataUsageBase {
@Override
public void onLoadFinished(Loader<ChartData> loader, ChartData data) {
setLoading(false, true);
mLoadingViewController.showContent(false /* animate */);
mChartData = data;
mChart.setNetworkStats(mChartData.network);