mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 02:38:20 +00:00
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
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user