}
}
});
+ mLauncherCallbacks.setLauncherSearchCallback(new Launcher.LauncherSearchCallbacks() {
+ private boolean mImportanceStored = false;
+ private int mWorkspaceImportanceForAccessibility =
+ View.IMPORTANT_FOR_ACCESSIBILITY_AUTO;
+ private int mHotseatImportanceForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_AUTO;
+
+ @Override
+ public void onSearchOverlayOpened() {
+ if (mImportanceStored) {
+ return;
+ }
+ // The underlying workspace and hotseat are temporarily suppressed by the search
+ // overlay. So they sholudn't be accessible.
+ mWorkspaceImportanceForAccessibility = mWorkspace.getImportantForAccessibility();
+ mHotseatImportanceForAccessibility = mHotseat.getImportantForAccessibility();
+ mWorkspace.setImportantForAccessibility(
+ View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
+ mHotseat.setImportantForAccessibility(
+ View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
+ mImportanceStored = true;
+ }
+
+ @Override
+ public void onSearchOverlayClosed() {
+ mWorkspace.setImportantForAccessibility(mWorkspaceImportanceForAccessibility);
+ mHotseat.setImportantForAccessibility(mHotseatImportanceForAccessibility);
+ mImportanceStored = false;
+ }
+ });
return true;
}
public void dismissAllApps();
}
+ public interface LauncherSearchCallbacks {
+ /**
+ * Called when the search overlay is shown.
+ */
+ public void onSearchOverlayOpened();
+
+ /**
+ * Called when the search overlay is dismissed.
+ */
+ public void onSearchOverlayClosed();
+ }
+
public interface LauncherOverlayCallbacks {
/**
* This method indicates whether a call to {@link #enterFullImmersion()} will succeed,
*/
public void setLauncherAppsCallback(Object callbacks);
+ /**
+ * Sets the callbacks to allow reacting the actions of search overlays of the launcher.
+ *
+ * @param callbacks A set of callbacks to the Launcher, is actually a LauncherSearchCallback,
+ * but for implementation purposes is passed around as an object.
+ */
+ public void setLauncherSearchCallback(Object callbacks);
}