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

Commit e309c6dc authored by Jon Miranda's avatar Jon Miranda
Browse files

Fix getAppPosition calculation since search divider removed from RV.

The app position calculations were off by 1 since the search divider
used to be the first item in the RecyclerView.

Bug: 38349031
Change-Id: I8c161b940ec8015aab85b0aab94718e6fee8fcbd
parent a80b1842
Loading
Loading
Loading
Loading
+9 −11
Original line number Diff line number Diff line
@@ -481,19 +481,17 @@ public class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter.
         *     5 6 7 8 9
         */
        private int getAppPosition(int position, int numPredictedApps, int appsPerRow) {
            int appPosition = position;
            int numDividerViews = 1 + (numPredictedApps == 0 ? 0 : 1);

            int allAppsStartAt = numDividerViews + numPredictedApps;
            if (numDividerViews == 1 || position < allAppsStartAt) {
                appPosition -= 1;
            } else {
                // We cannot assume that the predicted row will always be full.
                int numPredictedAppsOffset = appsPerRow - numPredictedApps;
                appPosition = position + numPredictedAppsOffset - numDividerViews;
            if (position < numPredictedApps) {
                // Predicted apps are first in the adapter.
                return position;
            }

            return appPosition;
            // There is at most 1 divider view between the predicted apps and the alphabetical apps.
            int numDividerViews = numPredictedApps == 0 ? 0 : 1;

            // This offset takes into consideration an incomplete row of predicted apps.
            int numPredictedAppsOffset = appsPerRow - numPredictedApps;
            return position + numPredictedAppsOffset - numDividerViews;
        }

        /**