Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 697d2ac4 authored by Matt Pietal's avatar Matt Pietal Committed by Automerger Merge Worker
Browse files

Merge "Sharesheet - Don't update list on bg thread" into rvc-dev am:...

Merge "Sharesheet - Don't update list on bg thread" into rvc-dev am: a4d5e8c9 am: c79feca6 am: 65a921bc am: a0e4a692

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11884197

Change-Id: Ic1d4af3a92834245168c071307281acd69f58ba5
parents 3c90d80f a0e4a692
Loading
Loading
Loading
Loading
+1 −11
Original line number Original line Diff line number Diff line
@@ -2800,17 +2800,7 @@ public class ChooserActivity extends ResolverActivity implements
                || chooserListAdapter.mDisplayList.isEmpty()) {
                || chooserListAdapter.mDisplayList.isEmpty()) {
            chooserListAdapter.notifyDataSetChanged();
            chooserListAdapter.notifyDataSetChanged();
        } else {
        } else {
            new AsyncTask<Void, Void, Void>() {
                @Override
                protected Void doInBackground(Void... voids) {
            chooserListAdapter.updateAlphabeticalList();
            chooserListAdapter.updateAlphabeticalList();
                    return null;
                }
                @Override
                protected void onPostExecute(Void aVoid) {
                    chooserListAdapter.notifyDataSetChanged();
                }
            }.execute();
        }
        }


        // don't support direct share on low ram devices
        // don't support direct share on low ram devices
+34 −24
Original line number Original line Diff line number Diff line
@@ -275,14 +275,18 @@ public class ChooserListAdapter extends ResolverListAdapter {
    }
    }


    void updateAlphabeticalList() {
    void updateAlphabeticalList() {
        mSortedList.clear();
        new AsyncTask<Void, Void, List<DisplayResolveInfo>>() {
        List<DisplayResolveInfo> tempList = new ArrayList<>();
            @Override
        tempList.addAll(mDisplayList);
            protected List<DisplayResolveInfo> doInBackground(Void... voids) {
        tempList.addAll(mCallerTargets);
                List<DisplayResolveInfo> allTargets = new ArrayList<>();
        if (mEnableStackedApps) {
                allTargets.addAll(mDisplayList);
                allTargets.addAll(mCallerTargets);
                if (!mEnableStackedApps) {
                    return allTargets;
                }
                // Consolidate multiple targets from same app.
                // Consolidate multiple targets from same app.
                Map<String, DisplayResolveInfo> consolidated = new HashMap<>();
                Map<String, DisplayResolveInfo> consolidated = new HashMap<>();
            for (DisplayResolveInfo info : tempList) {
                for (DisplayResolveInfo info : allTargets) {
                    String packageName = info.getResolvedComponentName().getPackageName();
                    String packageName = info.getResolvedComponentName().getPackageName();
                    DisplayResolveInfo multiDri = consolidated.get(packageName);
                    DisplayResolveInfo multiDri = consolidated.get(packageName);
                    if (multiDri == null) {
                    if (multiDri == null) {
@@ -297,11 +301,17 @@ public class ChooserListAdapter extends ResolverListAdapter {
                        consolidated.put(packageName, multiDisplayResolveInfo);
                        consolidated.put(packageName, multiDisplayResolveInfo);
                    }
                    }
                }
                }
            mSortedList.addAll(consolidated.values());
                List<DisplayResolveInfo> groupedTargets = new ArrayList<>();
        } else {
                groupedTargets.addAll(consolidated.values());
            mSortedList.addAll(tempList);
                Collections.sort(groupedTargets, new ChooserActivity.AzInfoComparator(mContext));
                return groupedTargets;
            }
            @Override
            protected void onPostExecute(List<DisplayResolveInfo> newList) {
                mSortedList = newList;
                notifyDataSetChanged();
            }
            }
        Collections.sort(mSortedList, new ChooserActivity.AzInfoComparator(mContext));
        }.execute();
    }
    }


    @Override
    @Override