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

Commit 1e68d0e3 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "When android:ui process receives callback result of...

Merge "When android:ui process receives callback result of AppPredictionService sortTargets, directly handles result instead of sending to Handler which takes extra time to dispatch messages." into rvc-dev am: 58c274fd

Change-Id: I0e62291acfcdee38d2ac4a5e418a2a5550508257
parents 4b39be3b 58c274fd
Loading
Loading
Loading
Loading
+26 −15
Original line number Diff line number Diff line
@@ -128,9 +128,8 @@ class AppPredictionServiceResolverComparator extends AbstractResolverComparator
                        mResolverRankerService.compute(targets);
                    } else {
                        Log.i(TAG, "AppPredictionService response received");
                        Message msg =
                            Message.obtain(mHandler, RANKER_SERVICE_RESULT, sortedAppTargets);
                        msg.sendToTarget();
                        // Skip sending to Handler which takes extra time to dispatch messages.
                        handleResult(sortedAppTargets);
                    }
                }
        );
@@ -141,6 +140,21 @@ class AppPredictionServiceResolverComparator extends AbstractResolverComparator
        // Null value is okay if we have defaulted to the ResolverRankerService.
        if (msg.what == RANKER_SERVICE_RESULT && msg.obj != null) {
            final List<AppTarget> sortedAppTargets = (List<AppTarget>) msg.obj;
            handleSortedAppTargets(sortedAppTargets);
        } else if (msg.obj == null && mResolverRankerService == null) {
            Log.e(TAG, "Unexpected null result");
        }
    }

    private void handleResult(List<AppTarget> sortedAppTargets) {
        if (mHandler.hasMessages(RANKER_RESULT_TIMEOUT)) {
            handleSortedAppTargets(sortedAppTargets);
            mHandler.removeMessages(RANKER_RESULT_TIMEOUT);
            afterCompute();
        }
    }

    private void handleSortedAppTargets(List<AppTarget> sortedAppTargets) {
        if (checkAppTargetRankValid(sortedAppTargets)) {
            sortedAppTargets.forEach(target -> mTargetScores.put(
                    new ComponentName(target.getPackageName(), target.getClassName()),
@@ -151,10 +165,7 @@ class AppPredictionServiceResolverComparator extends AbstractResolverComparator
                    sortedAppTargets.get(i).getPackageName(),
                    sortedAppTargets.get(i).getClassName());
            mTargetRanks.put(componentName, i);
                Log.i(TAG, "handleResultMessage, sortedAppTargets #" + i + ": " + componentName);
            }
        } else if (msg.obj == null && mResolverRankerService == null) {
            Log.e(TAG, "Unexpected null result");
            Log.i(TAG, "handleSortedAppTargets, sortedAppTargets #" + i + ": " + componentName);
        }
    }