mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-20 19:38:21 +00:00
Merge "[Launcher] Hide preview bottom components when overlay tabs are shown" into tm-qpr-dev am: 80233ed0c7
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/22210243 Change-Id: I5a731d86b624bd0f9da1e5911879d26737cbf400 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -66,6 +66,9 @@ public class GridCustomizationsProvider extends ContentProvider {
|
||||
|
||||
private static final String KEY_SURFACE_PACKAGE = "surface_package";
|
||||
private static final String KEY_CALLBACK = "callback";
|
||||
public static final String KEY_HIDE_BOTTOM_ROW = "hide_bottom_row";
|
||||
|
||||
private static final int MESSAGE_ID_UPDATE_PREVIEW = 1337;
|
||||
|
||||
private final ArrayMap<IBinder, PreviewLifecycleObserver> mActivePreviews = new ArrayMap<>();
|
||||
|
||||
@@ -79,7 +82,7 @@ public class GridCustomizationsProvider extends ContentProvider {
|
||||
String[] selectionArgs, String sortOrder) {
|
||||
switch (uri.getPath()) {
|
||||
case KEY_LIST_OPTIONS: {
|
||||
MatrixCursor cursor = new MatrixCursor(new String[] {
|
||||
MatrixCursor cursor = new MatrixCursor(new String[]{
|
||||
KEY_NAME, KEY_ROWS, KEY_COLS, KEY_PREVIEW_COUNT, KEY_IS_DEFAULT});
|
||||
InvariantDeviceProfile idp = InvariantDeviceProfile.INSTANCE.get(getContext());
|
||||
for (GridOption gridOption : idp.parseAllGridOptions(getContext())) {
|
||||
@@ -95,7 +98,7 @@ public class GridCustomizationsProvider extends ContentProvider {
|
||||
}
|
||||
case GET_ICON_THEMED:
|
||||
case ICON_THEMED: {
|
||||
MatrixCursor cursor = new MatrixCursor(new String[] {BOOLEAN_VALUE});
|
||||
MatrixCursor cursor = new MatrixCursor(new String[]{BOOLEAN_VALUE});
|
||||
cursor.newRow().add(BOOLEAN_VALUE, isThemedIconEnabled(getContext()) ? 1 : 0);
|
||||
return cursor;
|
||||
}
|
||||
@@ -224,7 +227,14 @@ public class GridCustomizationsProvider extends ContentProvider {
|
||||
|
||||
@Override
|
||||
public boolean handleMessage(Message message) {
|
||||
destroyObserver(this);
|
||||
if (destroyed) {
|
||||
return true;
|
||||
}
|
||||
if (message.what == MESSAGE_ID_UPDATE_PREVIEW) {
|
||||
renderer.hideBottomRow(message.getData().getBoolean(KEY_HIDE_BOTTOM_ROW));
|
||||
} else {
|
||||
destroyObserver(this);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -344,6 +344,25 @@ public class LauncherPreviewRenderer extends ContextWrapper
|
||||
return mHotseat;
|
||||
}
|
||||
|
||||
/**
|
||||
* Hides the components in the bottom row.
|
||||
*
|
||||
* @param hide True to hide and false to show.
|
||||
*/
|
||||
public void hideBottomRow(boolean hide) {
|
||||
mUiHandler.post(() -> {
|
||||
if (mDp.isTaskbarPresent) {
|
||||
// hotseat icons on bottom
|
||||
mHotseat.setIconsAlpha(hide ? 0 : 1);
|
||||
if (mDp.isQsbInline) {
|
||||
mHotseat.setQsbAlpha(hide ? 0 : 1);
|
||||
}
|
||||
} else {
|
||||
mHotseat.setQsbAlpha(hide ? 0 : 1);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public CellLayout getScreenWithId(int screenId) {
|
||||
return mWorkspaceScreens.get(screenId);
|
||||
|
||||
@@ -87,6 +87,8 @@ public class PreviewSurfaceRenderer {
|
||||
private final SurfaceControlViewHost mSurfaceControlViewHost;
|
||||
|
||||
private boolean mDestroyed = false;
|
||||
private LauncherPreviewRenderer mRenderer;
|
||||
private boolean mHideQsb;
|
||||
|
||||
public PreviewSurfaceRenderer(Context context, Bundle bundle) throws Exception {
|
||||
mContext = context;
|
||||
@@ -97,6 +99,7 @@ public class PreviewSurfaceRenderer {
|
||||
gridName = InvariantDeviceProfile.getCurrentGridName(context);
|
||||
}
|
||||
mWallpaperColors = bundle.getParcelable(KEY_COLORS);
|
||||
mHideQsb = bundle.getBoolean(GridCustomizationsProvider.KEY_HIDE_BOTTOM_ROW);
|
||||
mIdp = new InvariantDeviceProfile(context, gridName);
|
||||
|
||||
mHostToken = bundle.getBinder(KEY_HOST_TOKEN);
|
||||
@@ -174,6 +177,17 @@ public class PreviewSurfaceRenderer {
|
||||
MODEL_EXECUTOR.execute(this::loadModelData);
|
||||
}
|
||||
|
||||
/**
|
||||
* Hides the components in the bottom row.
|
||||
*
|
||||
* @param hide True to hide and false to show.
|
||||
*/
|
||||
public void hideBottomRow(boolean hide) {
|
||||
if (mRenderer != null) {
|
||||
mRenderer.hideBottomRow(hide);
|
||||
}
|
||||
}
|
||||
|
||||
@WorkerThread
|
||||
private void loadModelData() {
|
||||
final boolean migrated = doGridMigrationIfNecessary();
|
||||
@@ -209,8 +223,8 @@ public class PreviewSurfaceRenderer {
|
||||
DeviceProfile deviceProfile = mIdp.getDeviceProfile(previewContext);
|
||||
String query =
|
||||
LauncherSettings.Favorites.SCREEN + " = " + Workspace.FIRST_SCREEN_ID
|
||||
+ " or " + LauncherSettings.Favorites.CONTAINER + " = "
|
||||
+ LauncherSettings.Favorites.CONTAINER_HOTSEAT;
|
||||
+ " or " + LauncherSettings.Favorites.CONTAINER + " = "
|
||||
+ LauncherSettings.Favorites.CONTAINER_HOTSEAT;
|
||||
if (deviceProfile.isTwoPanels) {
|
||||
query += " or " + LauncherSettings.Favorites.SCREEN + " = "
|
||||
+ Workspace.SECOND_SCREEN_ID;
|
||||
@@ -254,8 +268,10 @@ public class PreviewSurfaceRenderer {
|
||||
if (mDestroyed) {
|
||||
return;
|
||||
}
|
||||
View view = new LauncherPreviewRenderer(inflationContext, mIdp, mWallpaperColors,
|
||||
launcherWidgetSpanInfo).getRenderedView(dataModel, widgetProviderInfoMap);
|
||||
mRenderer = new LauncherPreviewRenderer(inflationContext, mIdp,
|
||||
mWallpaperColors, launcherWidgetSpanInfo);
|
||||
mRenderer.hideBottomRow(mHideQsb);
|
||||
View view = mRenderer.getRenderedView(dataModel, widgetProviderInfoMap);
|
||||
// This aspect scales the view to fit in the surface and centers it
|
||||
final float scale = Math.min(mWidth / (float) view.getMeasuredWidth(),
|
||||
mHeight / (float) view.getMeasuredHeight());
|
||||
|
||||
Reference in New Issue
Block a user