mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-18 10:18:20 +00:00
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 87d752062e)
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,12 +1124,15 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche
|
||||
mAppWidgetHost.setActivityResumed(false);
|
||||
}
|
||||
|
||||
class LauncherOverlayCallbacksImpl implements LauncherOverlayCallbacks {
|
||||
|
||||
public void onScrollChanged(float progress) {
|
||||
if (mWorkspace != null) {
|
||||
mWorkspace.onOverlayScrollChanged(progress);
|
||||
}
|
||||
/**
|
||||
* {@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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user