Merge "Play fallback animation if icon in All Apps is covered by header." into tm-dev am: 6d3d7b1a2e am: 8c733de027
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/18719804 Change-Id: Iab972feeb0a9620b44a46071c7d2b37a34b1fe6e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -124,6 +124,7 @@ import com.android.launcher3.DropTarget.DragObject;
|
||||
import com.android.launcher3.accessibility.BaseAccessibilityDelegate.LauncherAction;
|
||||
import com.android.launcher3.accessibility.LauncherAccessibilityDelegate;
|
||||
import com.android.launcher3.allapps.ActivityAllAppsContainerView;
|
||||
import com.android.launcher3.allapps.AllAppsRecyclerView;
|
||||
import com.android.launcher3.allapps.AllAppsStore;
|
||||
import com.android.launcher3.allapps.AllAppsTransitionController;
|
||||
import com.android.launcher3.allapps.BaseAllAppsContainerView;
|
||||
@@ -196,6 +197,7 @@ import com.android.launcher3.util.TraceHelper;
|
||||
import com.android.launcher3.util.UiThreadHelper;
|
||||
import com.android.launcher3.util.ViewOnDrawExecutor;
|
||||
import com.android.launcher3.views.ActivityContext;
|
||||
import com.android.launcher3.views.FloatingIconView;
|
||||
import com.android.launcher3.views.FloatingSurfaceView;
|
||||
import com.android.launcher3.views.OptionsPopupView;
|
||||
import com.android.launcher3.views.ScrimView;
|
||||
@@ -2757,8 +2759,8 @@ public class Launcher extends StatefulActivity<LauncherState>
|
||||
* @param supportsAllAppsState If true and we are in All Apps state, looks for view in All Apps.
|
||||
* Else we only looks on the workspace.
|
||||
*/
|
||||
public View getFirstMatchForAppClose(int preferredItemId, String packageName, UserHandle user,
|
||||
boolean supportsAllAppsState) {
|
||||
public @Nullable View getFirstMatchForAppClose(int preferredItemId, String packageName,
|
||||
UserHandle user, boolean supportsAllAppsState) {
|
||||
final Predicate<ItemInfo> preferredItem = info ->
|
||||
info != null && info.id == preferredItemId;
|
||||
final Predicate<ItemInfo> packageAndUserAndApp = info ->
|
||||
@@ -2770,8 +2772,21 @@ public class Launcher extends StatefulActivity<LauncherState>
|
||||
packageName);
|
||||
|
||||
if (supportsAllAppsState && isInState(LauncherState.ALL_APPS)) {
|
||||
return getFirstMatch(Collections.singletonList(mAppsView.getActiveRecyclerView()),
|
||||
AllAppsRecyclerView activeRecyclerView = mAppsView.getActiveRecyclerView();
|
||||
View v = getFirstMatch(Collections.singletonList(activeRecyclerView),
|
||||
preferredItem, packageAndUserAndApp);
|
||||
|
||||
if (activeRecyclerView.getCurrentScrollY() > 0) {
|
||||
RectF locationBounds = new RectF();
|
||||
FloatingIconView.getLocationBoundsForView(this, v, false, locationBounds,
|
||||
new Rect());
|
||||
if (locationBounds.top < mAppsView.getHeaderBottom()) {
|
||||
// Icon is covered by scrim, return null to play fallback animation.
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return v;
|
||||
} else {
|
||||
List<ViewGroup> containers = new ArrayList<>(mWorkspace.getPanelCount() + 1);
|
||||
containers.add(mWorkspace.getHotseat().getShortcutsAndWidgets());
|
||||
|
||||
@@ -239,7 +239,7 @@ public class ActivityAllAppsContainerView<T extends Context & AppLauncher
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getHeaderBottom() {
|
||||
public int getHeaderBottom() {
|
||||
if (FeatureFlags.ENABLE_FLOATING_SEARCH_BAR.get()) {
|
||||
return super.getHeaderBottom();
|
||||
}
|
||||
|
||||
@@ -761,7 +761,7 @@ public abstract class BaseAllAppsContainerView<T extends Context & ActivityConte
|
||||
protected abstract BaseAllAppsAdapter<T> createAdapter(AlphabeticalAppsList<T> mAppsList,
|
||||
BaseAdapterProvider[] adapterProviders);
|
||||
|
||||
protected int getHeaderBottom() {
|
||||
public int getHeaderBottom() {
|
||||
return (int) getTranslationY();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user