Loading core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java +1 −1 Original line number Diff line number Diff line Loading @@ -301,7 +301,7 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter { private boolean rebuildTab(ResolverListAdapter activeListAdapter, boolean doPostProcessing) { if (shouldShowNoCrossProfileIntentsEmptyState(activeListAdapter)) { activeListAdapter.postListReadyRunnable(doPostProcessing); activeListAdapter.postListReadyRunnable(doPostProcessing, /* rebuildCompleted */ true); return false; } return activeListAdapter.rebuildList(doPostProcessing); Loading core/java/com/android/internal/app/ChooserActivity.java +13 −4 Original line number Diff line number Diff line Loading @@ -2404,10 +2404,9 @@ public class ChooserActivity extends ResolverActivity implements public ChooserGridAdapter createChooserGridAdapter(Context context, List<Intent> payloadIntents, Intent[] initialIntents, List<ResolveInfo> rList, boolean filterLastUsed, boolean useLayoutForBrowsables, UserHandle userHandle) { ChooserListAdapter chooserListAdapter = new ChooserListAdapter(context, payloadIntents, initialIntents, rList, filterLastUsed, createListController(userHandle), useLayoutForBrowsables, this, this); ChooserListAdapter chooserListAdapter = createChooserListAdapter(context, payloadIntents, initialIntents, rList, filterLastUsed, useLayoutForBrowsables, createListController(userHandle)); AppPredictor.Callback appPredictorCallback = createAppPredictorCallback(chooserListAdapter); AppPredictor appPredictor = setupAppPredictorForUser(userHandle, appPredictorCallback); chooserListAdapter.setAppPredictor(appPredictor); Loading @@ -2415,6 +2414,16 @@ public class ChooserActivity extends ResolverActivity implements return new ChooserGridAdapter(chooserListAdapter); } @VisibleForTesting public ChooserListAdapter createChooserListAdapter(Context context, List<Intent> payloadIntents, Intent[] initialIntents, List<ResolveInfo> rList, boolean filterLastUsed, boolean useLayoutForBrowsables, ResolverListController resolverListController) { return new ChooserListAdapter(context, payloadIntents, initialIntents, rList, filterLastUsed, resolverListController, useLayoutForBrowsables, this, this, context.getPackageManager()); } @VisibleForTesting protected ResolverListController createListController(UserHandle userHandle) { AppPredictor appPredictor = getAppPredictorForShareActivitiesIfEnabled(userHandle); Loading core/java/com/android/internal/app/ChooserListAdapter.java +8 −8 Original line number Diff line number Diff line Loading @@ -88,7 +88,7 @@ public class ChooserListAdapter extends ResolverListAdapter { private final int mMaxShortcutTargetsPerApp; private final ChooserListCommunicator mChooserListCommunicator; private final SelectableTargetInfo.SelectableTargetInfoCommunicator mSelectableTargetInfoComunicator; mSelectableTargetInfoCommunicator; private int mNumShortcutResults = 0; Loading Loading @@ -117,7 +117,8 @@ public class ChooserListAdapter extends ResolverListAdapter { boolean filterLastUsed, ResolverListController resolverListController, boolean useLayoutForBrowsables, ChooserListCommunicator chooserListCommunicator, SelectableTargetInfo.SelectableTargetInfoCommunicator selectableTargetInfoComunicator) { SelectableTargetInfo.SelectableTargetInfoCommunicator selectableTargetInfoCommunicator, PackageManager packageManager) { // Don't send the initial intents through the shared ResolverActivity path, // we want to separate them into a different section. super(context, payloadIntents, null, rList, filterLastUsed, Loading @@ -128,10 +129,9 @@ public class ChooserListAdapter extends ResolverListAdapter { mMaxShortcutTargetsPerApp = context.getResources().getInteger(R.integer.config_maxShortcutTargetsPerApp); mChooserListCommunicator = chooserListCommunicator; mSelectableTargetInfoComunicator = selectableTargetInfoComunicator; mSelectableTargetInfoCommunicator = selectableTargetInfoCommunicator; if (initialIntents != null) { final PackageManager pm = context.getPackageManager(); for (int i = 0; i < initialIntents.length; i++) { final Intent ii = initialIntents[i]; if (ii == null) { Loading @@ -147,7 +147,7 @@ public class ChooserListAdapter extends ResolverListAdapter { final ComponentName cn = ii.getComponent(); if (cn != null) { try { ai = pm.getActivityInfo(ii.getComponent(), 0); ai = packageManager.getActivityInfo(ii.getComponent(), 0); ri = new ResolveInfo(); ri.activityInfo = ai; } catch (PackageManager.NameNotFoundException ignored) { Loading @@ -155,7 +155,7 @@ public class ChooserListAdapter extends ResolverListAdapter { } } if (ai == null) { ri = pm.resolveActivity(ii, PackageManager.MATCH_DEFAULT_ONLY); ri = packageManager.resolveActivity(ii, PackageManager.MATCH_DEFAULT_ONLY); ai = ri != null ? ri.activityInfo : null; } if (ai == null) { Loading Loading @@ -455,7 +455,7 @@ public class ChooserListAdapter extends ResolverListAdapter { UserHandle userHandle = getUserHandle(); Context contextAsUser = mContext.createContextAsUser(userHandle, 0 /* flags */); boolean isInserted = insertServiceTarget(new SelectableTargetInfo(contextAsUser, origTarget, target, targetScore, mSelectableTargetInfoComunicator, origTarget, target, targetScore, mSelectableTargetInfoCommunicator, (isShortcutResult ? directShareToShortcutInfos.get(target) : null))); if (isInserted && isShortcutResult) { Loading Loading @@ -507,7 +507,7 @@ public class ChooserListAdapter extends ResolverListAdapter { .map(target -> new SelectableTargetInfo( contextAsUser, origTarget, target, target.getScore(), mSelectableTargetInfoComunicator, mSelectableTargetInfoCommunicator, (isShortcutResult ? directShareToShortcutInfos.get(target) : null)) ) Loading core/java/com/android/internal/app/ResolverActivity.java +3 −2 Original line number Diff line number Diff line Loading @@ -1026,7 +1026,8 @@ public class ResolverActivity extends Activity implements } @Override // ResolverListCommunicator public final void onPostListReady(ResolverListAdapter listAdapter, boolean doPostProcessing) { public final void onPostListReady(ResolverListAdapter listAdapter, boolean doPostProcessing, boolean rebuildCompleted) { if (isAutolaunching()) { return; } Loading @@ -1041,7 +1042,7 @@ public class ResolverActivity extends Activity implements } // showEmptyResolverListEmptyState can mark the tab as loaded, // which is a precondition for auto launching if (maybeAutolaunchActivity()) { if (rebuildCompleted && maybeAutolaunchActivity()) { return; } if (doPostProcessing) { Loading core/java/com/android/internal/app/ResolverListAdapter.java +7 −5 Original line number Diff line number Diff line Loading @@ -282,7 +282,7 @@ public class ResolverListAdapter extends BaseAdapter { } setPlaceholderCount(placeholderCount); createSortingTask(doPostProcessing).execute(currentResolveList); postListReadyRunnable(doPostProcessing); postListReadyRunnable(doPostProcessing, /* rebuildCompleted */ false); return false; } else { processSortedList(currentResolveList, doPostProcessing); Loading Loading @@ -370,7 +370,7 @@ public class ResolverListAdapter extends BaseAdapter { } mResolverListCommunicator.sendVoiceChoicesIfNeeded(); postListReadyRunnable(doPostProcessing); postListReadyRunnable(doPostProcessing, /* rebuildCompleted */ true); mIsTabLoaded = true; } Loading @@ -380,14 +380,15 @@ public class ResolverListAdapter extends BaseAdapter { * handler thread to update after the current task is finished. * @param doPostProcessing Whether to update the UI and load additional direct share targets * after the list has been rebuilt * @param rebuildCompleted Whether the list has been completely rebuilt */ void postListReadyRunnable(boolean doPostProcessing) { void postListReadyRunnable(boolean doPostProcessing, boolean rebuildCompleted) { if (mPostListReadyRunnable == null) { mPostListReadyRunnable = new Runnable() { @Override public void run() { mResolverListCommunicator.onPostListReady(ResolverListAdapter.this, doPostProcessing); doPostProcessing, rebuildCompleted); mPostListReadyRunnable = null; } }; Loading Loading @@ -649,7 +650,8 @@ public class ResolverListAdapter extends BaseAdapter { Intent getReplacementIntent(ActivityInfo activityInfo, Intent defIntent); void onPostListReady(ResolverListAdapter listAdapter, boolean updateUi); void onPostListReady(ResolverListAdapter listAdapter, boolean updateUi, boolean rebuildCompleted); void sendVoiceChoicesIfNeeded(); Loading Loading
core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java +1 −1 Original line number Diff line number Diff line Loading @@ -301,7 +301,7 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter { private boolean rebuildTab(ResolverListAdapter activeListAdapter, boolean doPostProcessing) { if (shouldShowNoCrossProfileIntentsEmptyState(activeListAdapter)) { activeListAdapter.postListReadyRunnable(doPostProcessing); activeListAdapter.postListReadyRunnable(doPostProcessing, /* rebuildCompleted */ true); return false; } return activeListAdapter.rebuildList(doPostProcessing); Loading
core/java/com/android/internal/app/ChooserActivity.java +13 −4 Original line number Diff line number Diff line Loading @@ -2404,10 +2404,9 @@ public class ChooserActivity extends ResolverActivity implements public ChooserGridAdapter createChooserGridAdapter(Context context, List<Intent> payloadIntents, Intent[] initialIntents, List<ResolveInfo> rList, boolean filterLastUsed, boolean useLayoutForBrowsables, UserHandle userHandle) { ChooserListAdapter chooserListAdapter = new ChooserListAdapter(context, payloadIntents, initialIntents, rList, filterLastUsed, createListController(userHandle), useLayoutForBrowsables, this, this); ChooserListAdapter chooserListAdapter = createChooserListAdapter(context, payloadIntents, initialIntents, rList, filterLastUsed, useLayoutForBrowsables, createListController(userHandle)); AppPredictor.Callback appPredictorCallback = createAppPredictorCallback(chooserListAdapter); AppPredictor appPredictor = setupAppPredictorForUser(userHandle, appPredictorCallback); chooserListAdapter.setAppPredictor(appPredictor); Loading @@ -2415,6 +2414,16 @@ public class ChooserActivity extends ResolverActivity implements return new ChooserGridAdapter(chooserListAdapter); } @VisibleForTesting public ChooserListAdapter createChooserListAdapter(Context context, List<Intent> payloadIntents, Intent[] initialIntents, List<ResolveInfo> rList, boolean filterLastUsed, boolean useLayoutForBrowsables, ResolverListController resolverListController) { return new ChooserListAdapter(context, payloadIntents, initialIntents, rList, filterLastUsed, resolverListController, useLayoutForBrowsables, this, this, context.getPackageManager()); } @VisibleForTesting protected ResolverListController createListController(UserHandle userHandle) { AppPredictor appPredictor = getAppPredictorForShareActivitiesIfEnabled(userHandle); Loading
core/java/com/android/internal/app/ChooserListAdapter.java +8 −8 Original line number Diff line number Diff line Loading @@ -88,7 +88,7 @@ public class ChooserListAdapter extends ResolverListAdapter { private final int mMaxShortcutTargetsPerApp; private final ChooserListCommunicator mChooserListCommunicator; private final SelectableTargetInfo.SelectableTargetInfoCommunicator mSelectableTargetInfoComunicator; mSelectableTargetInfoCommunicator; private int mNumShortcutResults = 0; Loading Loading @@ -117,7 +117,8 @@ public class ChooserListAdapter extends ResolverListAdapter { boolean filterLastUsed, ResolverListController resolverListController, boolean useLayoutForBrowsables, ChooserListCommunicator chooserListCommunicator, SelectableTargetInfo.SelectableTargetInfoCommunicator selectableTargetInfoComunicator) { SelectableTargetInfo.SelectableTargetInfoCommunicator selectableTargetInfoCommunicator, PackageManager packageManager) { // Don't send the initial intents through the shared ResolverActivity path, // we want to separate them into a different section. super(context, payloadIntents, null, rList, filterLastUsed, Loading @@ -128,10 +129,9 @@ public class ChooserListAdapter extends ResolverListAdapter { mMaxShortcutTargetsPerApp = context.getResources().getInteger(R.integer.config_maxShortcutTargetsPerApp); mChooserListCommunicator = chooserListCommunicator; mSelectableTargetInfoComunicator = selectableTargetInfoComunicator; mSelectableTargetInfoCommunicator = selectableTargetInfoCommunicator; if (initialIntents != null) { final PackageManager pm = context.getPackageManager(); for (int i = 0; i < initialIntents.length; i++) { final Intent ii = initialIntents[i]; if (ii == null) { Loading @@ -147,7 +147,7 @@ public class ChooserListAdapter extends ResolverListAdapter { final ComponentName cn = ii.getComponent(); if (cn != null) { try { ai = pm.getActivityInfo(ii.getComponent(), 0); ai = packageManager.getActivityInfo(ii.getComponent(), 0); ri = new ResolveInfo(); ri.activityInfo = ai; } catch (PackageManager.NameNotFoundException ignored) { Loading @@ -155,7 +155,7 @@ public class ChooserListAdapter extends ResolverListAdapter { } } if (ai == null) { ri = pm.resolveActivity(ii, PackageManager.MATCH_DEFAULT_ONLY); ri = packageManager.resolveActivity(ii, PackageManager.MATCH_DEFAULT_ONLY); ai = ri != null ? ri.activityInfo : null; } if (ai == null) { Loading Loading @@ -455,7 +455,7 @@ public class ChooserListAdapter extends ResolverListAdapter { UserHandle userHandle = getUserHandle(); Context contextAsUser = mContext.createContextAsUser(userHandle, 0 /* flags */); boolean isInserted = insertServiceTarget(new SelectableTargetInfo(contextAsUser, origTarget, target, targetScore, mSelectableTargetInfoComunicator, origTarget, target, targetScore, mSelectableTargetInfoCommunicator, (isShortcutResult ? directShareToShortcutInfos.get(target) : null))); if (isInserted && isShortcutResult) { Loading Loading @@ -507,7 +507,7 @@ public class ChooserListAdapter extends ResolverListAdapter { .map(target -> new SelectableTargetInfo( contextAsUser, origTarget, target, target.getScore(), mSelectableTargetInfoComunicator, mSelectableTargetInfoCommunicator, (isShortcutResult ? directShareToShortcutInfos.get(target) : null)) ) Loading
core/java/com/android/internal/app/ResolverActivity.java +3 −2 Original line number Diff line number Diff line Loading @@ -1026,7 +1026,8 @@ public class ResolverActivity extends Activity implements } @Override // ResolverListCommunicator public final void onPostListReady(ResolverListAdapter listAdapter, boolean doPostProcessing) { public final void onPostListReady(ResolverListAdapter listAdapter, boolean doPostProcessing, boolean rebuildCompleted) { if (isAutolaunching()) { return; } Loading @@ -1041,7 +1042,7 @@ public class ResolverActivity extends Activity implements } // showEmptyResolverListEmptyState can mark the tab as loaded, // which is a precondition for auto launching if (maybeAutolaunchActivity()) { if (rebuildCompleted && maybeAutolaunchActivity()) { return; } if (doPostProcessing) { Loading
core/java/com/android/internal/app/ResolverListAdapter.java +7 −5 Original line number Diff line number Diff line Loading @@ -282,7 +282,7 @@ public class ResolverListAdapter extends BaseAdapter { } setPlaceholderCount(placeholderCount); createSortingTask(doPostProcessing).execute(currentResolveList); postListReadyRunnable(doPostProcessing); postListReadyRunnable(doPostProcessing, /* rebuildCompleted */ false); return false; } else { processSortedList(currentResolveList, doPostProcessing); Loading Loading @@ -370,7 +370,7 @@ public class ResolverListAdapter extends BaseAdapter { } mResolverListCommunicator.sendVoiceChoicesIfNeeded(); postListReadyRunnable(doPostProcessing); postListReadyRunnable(doPostProcessing, /* rebuildCompleted */ true); mIsTabLoaded = true; } Loading @@ -380,14 +380,15 @@ public class ResolverListAdapter extends BaseAdapter { * handler thread to update after the current task is finished. * @param doPostProcessing Whether to update the UI and load additional direct share targets * after the list has been rebuilt * @param rebuildCompleted Whether the list has been completely rebuilt */ void postListReadyRunnable(boolean doPostProcessing) { void postListReadyRunnable(boolean doPostProcessing, boolean rebuildCompleted) { if (mPostListReadyRunnable == null) { mPostListReadyRunnable = new Runnable() { @Override public void run() { mResolverListCommunicator.onPostListReady(ResolverListAdapter.this, doPostProcessing); doPostProcessing, rebuildCompleted); mPostListReadyRunnable = null; } }; Loading Loading @@ -649,7 +650,8 @@ public class ResolverListAdapter extends BaseAdapter { Intent getReplacementIntent(ActivityInfo activityInfo, Intent defIntent); void onPostListReady(ResolverListAdapter listAdapter, boolean updateUi); void onPostListReady(ResolverListAdapter listAdapter, boolean updateUi, boolean rebuildCompleted); void sendVoiceChoicesIfNeeded(); Loading