Merge "Dashboard performance work" into nyc-dev
am: 04b25af149
* commit '04b25af149ba8e4c38cfe17fe9caf246a598e8e3':
Dashboard performance work
Change-Id: I41c9443c997428924b5ef6df2ad632c06bd416a8
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package com.android.settings.dashboard;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.util.Log;
|
||||
@@ -34,6 +35,7 @@ import com.android.settings.dashboard.conditional.Condition;
|
||||
import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
|
||||
import com.android.settings.dashboard.conditional.ConditionManager;
|
||||
import com.android.settings.dashboard.conditional.FocusRecyclerView;
|
||||
import com.android.settingslib.HelpUtils;
|
||||
import com.android.settingslib.SuggestionParser;
|
||||
import com.android.settingslib.drawer.DashboardCategory;
|
||||
import com.android.settingslib.drawer.SettingsDrawerActivity;
|
||||
@@ -67,6 +69,7 @@ public class DashboardSummary extends InstrumentedFragment
|
||||
private ConditionManager mConditionManager;
|
||||
private SuggestionParser mSuggestionParser;
|
||||
private LinearLayoutManager mLayoutManager;
|
||||
private SuggestionsChecks mSuggestionsChecks;
|
||||
|
||||
@Override
|
||||
protected int getMetricsCategory() {
|
||||
@@ -85,6 +88,7 @@ public class DashboardSummary extends InstrumentedFragment
|
||||
mConditionManager = ConditionManager.get(context);
|
||||
mSuggestionParser = new SuggestionParser(context,
|
||||
context.getSharedPreferences(SUGGESTIONS, 0), R.xml.suggestion_ordering);
|
||||
mSuggestionsChecks = new SuggestionsChecks(getContext());
|
||||
if (DEBUG_TIMING) Log.d(TAG, "onCreate took " + (System.currentTimeMillis() - startTime)
|
||||
+ " ms");
|
||||
}
|
||||
@@ -107,9 +111,11 @@ public class DashboardSummary extends InstrumentedFragment
|
||||
MetricsLogger.visible(getContext(), c.getMetricsConstant());
|
||||
}
|
||||
}
|
||||
for (Tile suggestion : mAdapter.getSuggestions()) {
|
||||
MetricsLogger.action(getContext(), MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION,
|
||||
DashboardAdapter.getSuggestionIdentifier(getContext(), suggestion));
|
||||
if (mAdapter.getSuggestions() != null) {
|
||||
for (Tile suggestion : mAdapter.getSuggestions()) {
|
||||
MetricsLogger.action(getContext(), MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION,
|
||||
DashboardAdapter.getSuggestionIdentifier(getContext(), suggestion));
|
||||
}
|
||||
}
|
||||
if (DEBUG_TIMING) Log.d(TAG, "onResume took " + (System.currentTimeMillis() - startTime)
|
||||
+ " ms");
|
||||
@@ -189,17 +195,12 @@ public class DashboardSummary extends InstrumentedFragment
|
||||
return;
|
||||
}
|
||||
|
||||
long start = System.currentTimeMillis();
|
||||
// TODO: Cache summaries from old categories somehow.
|
||||
List<DashboardCategory> categories =
|
||||
((SettingsActivity) getActivity()).getDashboardCategories();
|
||||
mAdapter.setCategories(categories);
|
||||
|
||||
// recheck to see if any suggestions have been changed.
|
||||
mAdapter.setSuggestions(mSuggestionParser);
|
||||
|
||||
long delta = System.currentTimeMillis() - start;
|
||||
Log.d(TAG, "rebuildUI took: " + delta + " ms");
|
||||
new SuggestionLoader().execute();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -212,4 +213,24 @@ public class DashboardSummary extends InstrumentedFragment
|
||||
Log.d(TAG, "onConditionsChanged");
|
||||
mAdapter.setConditions(mConditionManager.getConditions());
|
||||
}
|
||||
|
||||
private class SuggestionLoader extends AsyncTask<Void, Void, List<Tile>> {
|
||||
|
||||
@Override
|
||||
protected List<Tile> doInBackground(Void... params) {
|
||||
List<Tile> suggestions = mSuggestionParser.getSuggestions();
|
||||
for (int i = 0; i < suggestions.size(); i++) {
|
||||
if (mSuggestionsChecks.isSuggestionComplete(suggestions.get(i))) {
|
||||
mAdapter.disableSuggestion(suggestions.get(i));
|
||||
suggestions.remove(i--);
|
||||
}
|
||||
}
|
||||
return suggestions;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(List<Tile> tiles) {
|
||||
mAdapter.setSuggestions(tiles, mSuggestionParser);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user