Add header protection for Taskbar All Apps search bar.

Works similar to ActivityAllAppsContainerView<->ScrimView
implementation, except utilizes AbstractSlideInView's builtin scrim.

Test: Manual
Flag: ENABLE_ALL_APPS_SEARCH_IN_TASKBAR=false
Bug: 216683257
Change-Id: Ide41ac47ecffc232fffac34c6bfdda67c1da549d
This commit is contained in:
Brian Isganitis
2023-04-04 20:43:11 -04:00
parent 5c18fa35b2
commit bd114c2241
4 changed files with 36 additions and 7 deletions

View File

@@ -19,15 +19,21 @@ import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import androidx.annotation.Nullable;
import com.android.launcher3.R;
import com.android.launcher3.allapps.ActivityAllAppsContainerView;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.taskbar.overlay.TaskbarOverlayContext;
import java.util.Optional;
/** All apps container accessible from taskbar. */
public class TaskbarAllAppsContainerView extends
ActivityAllAppsContainerView<TaskbarOverlayContext> {
private @Nullable OnInvalidateHeaderListener mOnInvalidateHeaderListener;
public TaskbarAllAppsContainerView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
@@ -36,6 +42,10 @@ public class TaskbarAllAppsContainerView extends
super(context, attrs, defStyleAttr);
}
void setOnInvalidateHeaderListener(OnInvalidateHeaderListener onInvalidateHeaderListener) {
mOnInvalidateHeaderListener = onInvalidateHeaderListener;
}
@Override
protected View inflateSearchBox() {
if (isSearchSupported()) {
@@ -53,6 +63,13 @@ public class TaskbarAllAppsContainerView extends
return searchView;
}
@Override
public void invalidateHeader() {
super.invalidateHeader();
Optional.ofNullable(mOnInvalidateHeaderListener).ifPresent(
OnInvalidateHeaderListener::onInvalidateHeader);
}
@Override
protected boolean isSearchSupported() {
return FeatureFlags.ENABLE_ALL_APPS_SEARCH_IN_TASKBAR.get();
@@ -63,4 +80,8 @@ public class TaskbarAllAppsContainerView extends
// All apps is always open
return true;
}
interface OnInvalidateHeaderListener {
void onInvalidateHeader();
}
}