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

Commit 8af0cd80 authored by Jun Mukai's avatar Jun Mukai
Browse files

Introduce LauncherSearchCallback to handle search overlay status.

Bug: 20011047
Change-Id: I93cab4e0614b9658b4b657dd98dca68d42580e63
parent 44d0aacd
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
@@ -546,6 +546,35 @@ public class Launcher extends Activity
                }
            }
        });
        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;
    }

@@ -1192,6 +1221,18 @@ public class Launcher extends Activity
        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,
+7 −0
Original line number Diff line number Diff line
@@ -119,4 +119,11 @@ public interface LauncherCallbacks {
     */
    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);
}
+5 −0
Original line number Diff line number Diff line
@@ -289,6 +289,11 @@ public class LauncherExtension extends Launcher {
            // Do nothing
        }

        @Override
        public void setLauncherSearchCallback(Object callbacks) {
            // Do nothing
        }

        class LauncherExtensionOverlay implements LauncherOverlay {
            LauncherOverlayCallbacks mLauncherOverlayCallbacks;
            ViewGroup mOverlayView;