Loading src/com/android/contacts/quickcontact/QuickContactActivity.java +57 −29 Original line number Diff line number Diff line Loading @@ -83,7 +83,6 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnCreateContextMenuListener; import android.view.WindowManager; import android.widget.ImageView; import android.widget.Toast; import android.widget.Toolbar; Loading Loading @@ -213,6 +212,7 @@ public class QuickContactActivity extends ContactsActivity { private MultiShrinkScroller mScroller; private SelectAccountDialogFragmentListener mSelectAccountFragmentListener; private AsyncTask<Void, Void, Cp2DataCardModel> mEntriesAndActionsTask; private AsyncTask<Void, Void, Void> mRecentDataTask; /** * The last copy of Cp2DataCardModel that was passed to {@link #populateContactAndAboutCard}. */ Loading Loading @@ -1774,6 +1774,13 @@ public class QuickContactActivity extends ContactsActivity { private void bindRecentData() { final List<ContactInteraction> allInteractions = new ArrayList<>(); final List<List<Entry>> interactionsWrapper = new ArrayList<>(); mRecentDataTask = new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { Trace.beginSection("sort recent loader results"); for (List<ContactInteraction> loaderInteractions : mRecentLoaderResults.values()) { allInteractions.addAll(loaderInteractions); } Loading @@ -1786,13 +1793,25 @@ public class QuickContactActivity extends ContactsActivity { } }); Trace.endSection(); Trace.beginSection("contactInteractionsToEntries"); // Wrap each interaction in its own list so that an icon is displayed for each entry List<List<Entry>> interactionsWrapper = new ArrayList<>(); for (Entry contactInteraction : contactInteractionsToEntries(allInteractions)) { List<Entry> entryListWrapper = new ArrayList<>(1); entryListWrapper.add(contactInteraction); interactionsWrapper.add(entryListWrapper); } Trace.endSection(); return null; } @Override protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); Trace.beginSection("initialize recents card"); if (allInteractions.size() > 0) { mRecentCard.initialize(interactionsWrapper, /* numInitialVisibleEntries = */ MIN_NUM_COLLAPSED_RECENT_ENTRIES_SHOWN, Loading @@ -1801,14 +1820,20 @@ public class QuickContactActivity extends ContactsActivity { mRecentCard.setVisibility(View.VISIBLE); } Trace.endSection(); // About card is initialized along with the contact card, but since it appears after // the recent card in the UI, we hold off until making it visible until the recent card // is also ready to avoid stuttering. // the recent card in the UI, we hold off until making it visible until the recent // card is also ready to avoid stuttering. if (mAboutCard.shouldShow()) { mAboutCard.setVisibility(View.VISIBLE); } else { mAboutCard.setVisibility(View.GONE); } mRecentDataTask = null; } }; mRecentDataTask.execute(); } @Override Loading @@ -1822,6 +1847,9 @@ public class QuickContactActivity extends ContactsActivity { // the entire process will be killed. mEntriesAndActionsTask.cancel(/* mayInterruptIfRunning = */ false); } if (mRecentDataTask != null) { mRecentDataTask.cancel(/* mayInterruptIfRunning = */ false); } } /** Loading Loading
src/com/android/contacts/quickcontact/QuickContactActivity.java +57 −29 Original line number Diff line number Diff line Loading @@ -83,7 +83,6 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnCreateContextMenuListener; import android.view.WindowManager; import android.widget.ImageView; import android.widget.Toast; import android.widget.Toolbar; Loading Loading @@ -213,6 +212,7 @@ public class QuickContactActivity extends ContactsActivity { private MultiShrinkScroller mScroller; private SelectAccountDialogFragmentListener mSelectAccountFragmentListener; private AsyncTask<Void, Void, Cp2DataCardModel> mEntriesAndActionsTask; private AsyncTask<Void, Void, Void> mRecentDataTask; /** * The last copy of Cp2DataCardModel that was passed to {@link #populateContactAndAboutCard}. */ Loading Loading @@ -1774,6 +1774,13 @@ public class QuickContactActivity extends ContactsActivity { private void bindRecentData() { final List<ContactInteraction> allInteractions = new ArrayList<>(); final List<List<Entry>> interactionsWrapper = new ArrayList<>(); mRecentDataTask = new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { Trace.beginSection("sort recent loader results"); for (List<ContactInteraction> loaderInteractions : mRecentLoaderResults.values()) { allInteractions.addAll(loaderInteractions); } Loading @@ -1786,13 +1793,25 @@ public class QuickContactActivity extends ContactsActivity { } }); Trace.endSection(); Trace.beginSection("contactInteractionsToEntries"); // Wrap each interaction in its own list so that an icon is displayed for each entry List<List<Entry>> interactionsWrapper = new ArrayList<>(); for (Entry contactInteraction : contactInteractionsToEntries(allInteractions)) { List<Entry> entryListWrapper = new ArrayList<>(1); entryListWrapper.add(contactInteraction); interactionsWrapper.add(entryListWrapper); } Trace.endSection(); return null; } @Override protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); Trace.beginSection("initialize recents card"); if (allInteractions.size() > 0) { mRecentCard.initialize(interactionsWrapper, /* numInitialVisibleEntries = */ MIN_NUM_COLLAPSED_RECENT_ENTRIES_SHOWN, Loading @@ -1801,14 +1820,20 @@ public class QuickContactActivity extends ContactsActivity { mRecentCard.setVisibility(View.VISIBLE); } Trace.endSection(); // About card is initialized along with the contact card, but since it appears after // the recent card in the UI, we hold off until making it visible until the recent card // is also ready to avoid stuttering. // the recent card in the UI, we hold off until making it visible until the recent // card is also ready to avoid stuttering. if (mAboutCard.shouldShow()) { mAboutCard.setVisibility(View.VISIBLE); } else { mAboutCard.setVisibility(View.GONE); } mRecentDataTask = null; } }; mRecentDataTask.execute(); } @Override Loading @@ -1822,6 +1847,9 @@ public class QuickContactActivity extends ContactsActivity { // the entire process will be killed. mEntriesAndActionsTask.cancel(/* mayInterruptIfRunning = */ false); } if (mRecentDataTask != null) { mRecentDataTask.cancel(/* mayInterruptIfRunning = */ false); } } /** Loading