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

Commit 482f983a authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Add depth to -1 screen

Wallpaper will zoom out as you drag the overlay

Test: manually pull overlay
Fixes: 192502999
Change-Id: I9067b70d10497d4e16a5ef601161fbedfa9307e1
Merged-In: I9067b70d10497d4e16a5ef601161fbedfa9307e1
(cherry picked from commit 87d75206)
parent 8782ad4f
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -200,6 +200,17 @@ public abstract class BaseQuickstepLauncher extends Launcher
        }
    }

    /**
     * {@code LauncherOverlayCallbacks} scroll amount.
     * Indicates transition progress to -1 screen.
     * @param progress From 0 to 1.
     */
    @Override
    public void onScrollChanged(float progress) {
        super.onScrollChanged(progress);
        mDepthController.onOverlayScrollChanged(progress);
    }

    @Override
    public void startIntentSenderForResult(IntentSender intent, int requestCode,
            Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options) {
+16 −0
Original line number Diff line number Diff line
@@ -116,6 +116,10 @@ public class DepthController implements StateHandler<LauncherState>,
    private boolean mCrossWindowBlursEnabled;
    private WallpaperManagerCompat mWallpaperManager;
    private SurfaceControl mSurface;
    /**
     * How visible the -1 overlay is, from 0 to 1.
     */
    private float mOverlayScrollProgress;
    /**
     * Ratio from 0 to 1, where 0 is fully zoomed out, and 1 is zoomed in.
     * @see android.service.wallpaper.WallpaperService.Engine#onZoomChanged(float)
@@ -251,12 +255,24 @@ public class DepthController implements StateHandler<LauncherState>,
        }
    }

    public void onOverlayScrollChanged(float progress) {
        // Round out the progress to dedupe frequent, non-perceptable updates
        int progressI = (int) (progress * 256);
        float progressF = progressI / 256f;
        if (Float.compare(mOverlayScrollProgress, progressF) == 0) {
            return;
        }
        mOverlayScrollProgress = progressF;
        dispatchTransactionSurface(mDepth);
    }

    private boolean dispatchTransactionSurface(float depth) {
        boolean supportsBlur = BlurUtils.supportsBlursOnWindows();
        if (supportsBlur && (mSurface == null || !mSurface.isValid())) {
            return false;
        }
        ensureDependencies();
        depth = Math.max(depth, mOverlayScrollProgress);
        IBinder windowToken = mLauncher.getRootView().getWindowToken();
        if (windowToken != null) {
            mWallpaperManager.setWallpaperZoomOut(windowToken, depth);
+12 −8
Original line number Diff line number Diff line
@@ -218,7 +218,8 @@ import java.util.stream.Stream;
 * Default launcher application.
 */
public class Launcher extends StatefulActivity<LauncherState> implements LauncherExterns,
        Callbacks, InvariantDeviceProfile.OnIDPChangeListener, PluginListener<OverlayPlugin> {
        Callbacks, InvariantDeviceProfile.OnIDPChangeListener, PluginListener<OverlayPlugin>,
        LauncherOverlayCallbacks {
    public static final String TAG = "Launcher";

    public static final ActivityTracker<Launcher> ACTIVITY_TRACKER = new ActivityTracker<>();
@@ -619,7 +620,7 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche
    @Override
    public void setLauncherOverlay(LauncherOverlay overlay) {
        if (overlay != null) {
            overlay.setOverlayCallbacks(new LauncherOverlayCallbacksImpl());
            overlay.setOverlayCallbacks(this);
        }
        mWorkspace.setLauncherOverlay(overlay);
    }
@@ -1123,14 +1124,17 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche
        mAppWidgetHost.setActivityResumed(false);
    }

    class LauncherOverlayCallbacksImpl implements LauncherOverlayCallbacks {

    /**
     * {@code LauncherOverlayCallbacks} scroll amount.
     * Indicates transition progress to -1 screen.
     * @param progress From 0 to 1.
     */
    @Override
    public void onScrollChanged(float progress) {
        if (mWorkspace != null) {
            mWorkspace.onOverlayScrollChanged(progress);
        }
    }
    }

    /**
     * Restores the previous state, if it exists.