diff options
author | Jon Miranda <jonmiranda@google.com> | 2023-03-23 21:38:49 -0700 |
---|---|---|
committer | Jon Miranda <jonmiranda@google.com> | 2023-03-24 12:29:11 -0700 |
commit | 9c478b6c29659f516c1ac37cf72914f9caa0e05d (patch) | |
tree | de4502451d626293ba2850f8b0b54bd9ba0409aa | |
parent | bc65c3d442fae3696bfc216d9e5e3b4e8f80c04e (diff) | |
download | Launcher3-9c478b6c29659f516c1ac37cf72914f9caa0e05d.tar.gz |
Add taskbarIconSize to GridOption/DisplayOptions
- Renamed variables to make it more clear what they represent
- DeviceProfile will be source of truth for taskbar
sizes
Bug: 265144213
Test: phone, multi-display, tablet
Change-Id: Id9c19d15a65894fd7645e0f876a4b6527b713c34
Flag: ENABLE_TRANSIENT_TASKBAR=true
32 files changed, 171 insertions, 123 deletions
diff --git a/quickstep/res/layout/transient_taskbar.xml b/quickstep/res/layout/transient_taskbar.xml index f9ece84a4d..47d63e728c 100644 --- a/quickstep/res/layout/transient_taskbar.xml +++ b/quickstep/res/layout/transient_taskbar.xml @@ -28,7 +28,7 @@ android:gravity="center" android:forceHasOverlappingRendering="false" android:layout_gravity="bottom" - android:layout_marginBottom="@dimen/transient_taskbar_margin" + android:layout_marginBottom="@dimen/transient_taskbar_bottom_margin" android:clipChildren="false" /> <com.android.launcher3.taskbar.TaskbarScrimView diff --git a/quickstep/res/values-sw720dp/dimens.xml b/quickstep/res/values-sw720dp/dimens.xml index 0832a91981..9e832bc5e4 100644 --- a/quickstep/res/values-sw720dp/dimens.xml +++ b/quickstep/res/values-sw720dp/dimens.xml @@ -38,10 +38,6 @@ <dimen name="allset_page_allset_text_size">42sp</dimen> <dimen name="allset_page_swipe_up_text_size">16sp</dimen> - <!-- Transient taskbar --> - <dimen name="transient_taskbar_size">76dp</dimen> - <dimen name="transient_taskbar_icon_size">52dp</dimen> - <!-- Taskbar swipe up thresholds --> <dimen name="taskbar_from_nav_threshold">30dp</dimen> <dimen name="taskbar_app_window_threshold">100dp</dimen> diff --git a/quickstep/res/values/config.xml b/quickstep/res/values/config.xml index b61bdfbc20..0d3aeb3717 100644 --- a/quickstep/res/values/config.xml +++ b/quickstep/res/values/config.xml @@ -55,4 +55,7 @@ <!-- Taskbar --> <!-- Align the Taskbar to the start (Left/Right) of the device when 3 button nav is enabled. --> <bool name="start_align_taskbar">false</bool> + + <!-- This is a float because it is converted to dp later in DeviceProfile --> + <item name="taskbar_icon_size" type="dimen" format="float">44</item> </resources> diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml index c6e90c4295..93fb65d107 100644 --- a/quickstep/res/values/dimens.xml +++ b/quickstep/res/values/dimens.xml @@ -261,7 +261,6 @@ <!-- Taskbar --> <dimen name="taskbar_size">@*android:dimen/taskbar_frame_height</dimen> <dimen name="taskbar_ime_size">48dp</dimen> - <dimen name="taskbar_icon_size">44dp</dimen> <dimen name="taskbar_icon_min_touch_size">48dp</dimen> <!-- Note that this applies to both sides of all icons, so visible space is double this. --> <dimen name="taskbar_icon_spacing">12dp</dimen> @@ -292,13 +291,12 @@ <!-- Transient taskbar --> - <dimen name="transient_taskbar_size">72dp</dimen> + <dimen name="transient_taskbar_padding">12dp</dimen> <dimen name="transient_taskbar_min_width">150dp</dimen> - <dimen name="transient_taskbar_icon_size">48dp</dimen> - <dimen name="transient_taskbar_margin">24dp</dimen> + <dimen name="transient_taskbar_bottom_margin">24dp</dimen> <dimen name="transient_taskbar_shadow_blur">40dp</dimen> <dimen name="transient_taskbar_key_shadow_distance">10dp</dimen> - <dimen name="transient_taskbar_stashed_size">32dp</dimen> + <dimen name="transient_taskbar_stashed_height">32dp</dimen> <dimen name="transient_taskbar_all_apps_button_translation_x_offset">4dp</dimen> <dimen name="transient_taskbar_stash_spring_velocity_dp_per_s">400dp</dimen> diff --git a/quickstep/src/com/android/launcher3/taskbar/DesktopNavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/DesktopNavbarButtonsViewController.java index 48481d88b9..268024fd3d 100644 --- a/quickstep/src/com/android/launcher3/taskbar/DesktopNavbarButtonsViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/DesktopNavbarButtonsViewController.java @@ -58,7 +58,7 @@ public class DesktopNavbarButtonsViewController extends NavbarButtonsViewControl @Override public void init(TaskbarControllers controllers) { mControllers = controllers; - mNavButtonsView.getLayoutParams().height = mContext.getDeviceProfile().taskbarSize; + mNavButtonsView.getLayoutParams().height = mContext.getDeviceProfile().taskbarHeight; // Quick settings and notifications buttons addButton(R.drawable.ic_sysbar_quick_settings, BUTTON_QUICK_SETTINGS, diff --git a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java index 352740fad3..a713ff53a7 100644 --- a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java @@ -265,7 +265,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT flags -> (flags & flagsToRemoveTranslation) != 0, AnimatedFloat.VALUE, 1, 0)); // Center nav buttons in new height for IME. - float transForIme = (mContext.getDeviceProfile().taskbarSize + float transForIme = (mContext.getDeviceProfile().taskbarHeight - mControllers.taskbarInsetsController.getTaskbarHeightForIme()) / 2f; // For gesture nav, nav buttons only show for IME anyway so keep them translated down. float defaultButtonTransY = alwaysShowButtons ? 0 : transForIme; diff --git a/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java b/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java index 48b3f72424..941b4b077a 100644 --- a/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java @@ -111,13 +111,11 @@ public class StashedHandleViewController implements TaskbarControllers.LoggableT mStashedHandleWidth = resources.getDimensionPixelSize(R.dimen.taskbar_stashed_small_screen); } else { - mTaskbarSize = deviceProfile.taskbarSize; + mTaskbarSize = deviceProfile.taskbarHeight; mStashedHandleWidth = resources .getDimensionPixelSize(R.dimen.taskbar_stashed_handle_width); } - int taskbarBottomMargin = DisplayController.isTransientTaskbar(mActivity) - ? resources.getDimensionPixelSize(R.dimen.transient_taskbar_margin) - : 0; + int taskbarBottomMargin = deviceProfile.taskbarBottomMargin; mStashedHandleView.getLayoutParams().height = mTaskbarSize + taskbarBottomMargin; mTaskbarStashedHandleAlpha.get(ALPHA_INDEX_STASHED).setValue( diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index 77a9d780b0..681ae53a0c 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -302,10 +302,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { deviceProfile.hotseatQsbWidth = originDeviceProfile.hotseatQsbWidth; // Update icon size - deviceProfile.iconSizePx = resources.getDimensionPixelSize( - DisplayController.isTransientTaskbar(TaskbarActivityContext.this) - ? R.dimen.transient_taskbar_icon_size - : R.dimen.taskbar_icon_size); + deviceProfile.iconSizePx = deviceProfile.taskbarIconSize; deviceProfile.updateIconSize(1f, resources); }).build(); } @@ -716,13 +713,13 @@ public class TaskbarActivityContext extends BaseTaskbarContext { } if (DisplayController.isTransientTaskbar(this)) { - int taskbarSize = resources.getDimensionPixelSize(R.dimen.transient_taskbar_size); - return taskbarSize - + (2 * resources.getDimensionPixelSize(R.dimen.transient_taskbar_margin)) + return mDeviceProfile.taskbarHeight + + (2 * mDeviceProfile.taskbarBottomMargin) + resources.getDimensionPixelSize(R.dimen.transient_taskbar_shadow_blur); } - return mDeviceProfile.taskbarSize + Math.max(getLeftCornerRadius(), getRightCornerRadius()); + return mDeviceProfile.taskbarHeight + + Math.max(getLeftCornerRadius(), getRightCornerRadius()); } public int getSetupWindowHeight() { diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarBackgroundRenderer.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarBackgroundRenderer.kt index 82b455d24a..580d3919e3 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarBackgroundRenderer.kt +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarBackgroundRenderer.kt @@ -33,11 +33,11 @@ class TaskbarBackgroundRenderer(context: TaskbarActivityContext) { val paint = Paint() val lastDrawnTransientRect = RectF() - var backgroundHeight = context.deviceProfile.taskbarSize.toFloat() + var backgroundHeight = context.deviceProfile.taskbarHeight.toFloat() var translationYForSwipe = 0f var translationYForStash = 0f - private var maxBackgroundHeight = context.deviceProfile.taskbarSize.toFloat() + private var maxBackgroundHeight = context.deviceProfile.taskbarHeight.toFloat() private val transientBackgroundBounds = context.transientTaskbarBounds private val isTransientTaskbar = DisplayController.isTransientTaskbar(context) @@ -68,7 +68,7 @@ class TaskbarBackgroundRenderer(context: TaskbarActivityContext) { if (isTransientTaskbar) { val res = context.resources - bottomMargin = res.getDimensionPixelSize(R.dimen.transient_taskbar_margin) + bottomMargin = res.getDimensionPixelSize(R.dimen.transient_taskbar_bottom_margin) shadowBlur = res.getDimension(R.dimen.transient_taskbar_shadow_blur) keyShadowDistance = res.getDimension(R.dimen.transient_taskbar_key_shadow_distance) } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java index 7f8879469a..2628a7f17d 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java @@ -94,7 +94,7 @@ public class TaskbarDragLayerController implements TaskbarControllers.LoggableTa */ public Rect getFolderBoundingBox() { Rect boundingBox = new Rect(0, 0, mTaskbarDragLayer.getWidth(), - mTaskbarDragLayer.getHeight() - mActivity.getDeviceProfile().taskbarSize); + mTaskbarDragLayer.getHeight() - mActivity.getDeviceProfile().taskbarHeight); boundingBox.inset(mFolderMargin, mFolderMargin); return boundingBox; } @@ -233,7 +233,7 @@ public class TaskbarDragLayerController implements TaskbarControllers.LoggableTa deviceProfile.getDisplayInfo().currentSize.y : taskbarDimensions.y; } else { - return deviceProfile.taskbarSize; + return deviceProfile.taskbarHeight; } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java index d3f1b2f51e..d1b8644447 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduController.java @@ -68,9 +68,7 @@ public class TaskbarEduController implements TaskbarControllers.LoggableTaskbarC ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) startButton.getLayoutParams(); DeviceProfile dp = overlayContext.getDeviceProfile(); - layoutParams.bottomMargin += DisplayController.isTransientTaskbar(overlayContext) - ? dp.taskbarSize + dp.transientTaskbarMargin - : dp.taskbarSize; + layoutParams.bottomMargin += dp.taskbarHeight + dp.taskbarBottomMargin; mTaskbarEduView.init(new TaskbarEduCallbacks()); diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt index bc582e2b65..b6a799837f 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt @@ -130,7 +130,7 @@ class TaskbarEduTooltipController(val activityContext: TaskbarActivityContext) : findViewById<View>(R.id.done_button)?.setOnClickListener { hide() } if (DisplayController.isTransientTaskbar(activityContext)) { (layoutParams as ViewGroup.MarginLayoutParams).bottomMargin += - activityContext.deviceProfile.taskbarSize + activityContext.deviceProfile.taskbarHeight } show() } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarPopupController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarPopupController.java index cfc7813305..90fcd37d2e 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarPopupController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarPopupController.java @@ -248,7 +248,7 @@ public class TaskbarPopupController implements TaskbarControllers.LoggableTaskba // Move the icon to align with the center-top of the touch point Point iconShift = new Point(); iconShift.x = mIconLastTouchPos.x - sv.getIconCenter().x; - iconShift.y = mIconLastTouchPos.y - mContext.getDeviceProfile().iconSizePx; + iconShift.y = mIconLastTouchPos.y - mContext.getDeviceProfile().taskbarIconSize; ((TaskbarDragController) ActivityContext.lookupContext( v.getContext()).getDragController()).startDragOnLongClick(sv, iconShift); diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java index d26fbc4459..b1f984fb42 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java @@ -40,7 +40,6 @@ import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.content.SharedPreferences; -import android.content.res.Resources; import android.util.Log; import android.view.InsetsController; import android.view.View; @@ -231,21 +230,9 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba mPrefs = LauncherPrefs.getPrefs(mActivity); mSystemUiProxy = SystemUiProxy.INSTANCE.get(activity); mAccessibilityManager = mActivity.getSystemService(AccessibilityManager.class); - if (isPhoneMode()) { - // DeviceProfile's taskbar vars aren't initialized w/ the flag off - Resources resources = mActivity.getResources(); - boolean isTransientTaskbar = DisplayController.isTransientTaskbar(mActivity); - mUnstashedHeight = resources.getDimensionPixelSize(isTransientTaskbar - ? R.dimen.transient_taskbar_size - : R.dimen.taskbar_size); - mStashedHeight = resources.getDimensionPixelSize(isTransientTaskbar - ? R.dimen.transient_taskbar_stashed_size - : R.dimen.taskbar_stashed_size); - } else { - mUnstashedHeight = mActivity.getDeviceProfile().taskbarSize; - mStashedHeight = mActivity.getDeviceProfile().stashedTaskbarSize; - } + mUnstashedHeight = mActivity.getDeviceProfile().taskbarHeight; + mStashedHeight = mActivity.getDeviceProfile().stashedTaskbarHeight; } public void init(TaskbarControllers controllers, boolean setupUIVisible) { @@ -407,12 +394,9 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba * Returns the height that taskbar will be touchable. */ public int getTouchableHeight() { - int bottomMargin = 0; - if (DisplayController.isTransientTaskbar(mActivity)) { - bottomMargin = mActivity.getResources().getDimensionPixelSize( - R.dimen.transient_taskbar_margin); - } - return mIsStashed ? mStashedHeight : (mUnstashedHeight + bottomMargin); + return mIsStashed + ? mStashedHeight + : (mUnstashedHeight + mActivity.getDeviceProfile().taskbarBottomMargin); } /** diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashViaTouchController.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashViaTouchController.kt index 0e5fa380e7..2373142074 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashViaTouchController.kt +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashViaTouchController.kt @@ -46,9 +46,9 @@ class TaskbarStashViaTouchController(val controllers: TaskbarControllers) : Touc private val displacementInterpolator = LINEAR /** How far we can translate the TaskbarView before it's offscreen. */ private val maxVisualDisplacement = - activity.resources.getDimensionPixelSize(R.dimen.transient_taskbar_margin).toFloat() + activity.resources.getDimensionPixelSize(R.dimen.transient_taskbar_bottom_margin).toFloat() /** How far the swipe could go, if user swiped from the very top of TaskbarView. */ - private val maxTouchDisplacement = maxVisualDisplacement + activity.deviceProfile.taskbarSize + private val maxTouchDisplacement = maxVisualDisplacement + activity.deviceProfile.taskbarHeight private val touchDisplacementToStash = activity.resources.getDimensionPixelSize(R.dimen.taskbar_to_nav_threshold).toFloat() diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java index 0eecc5664b..b7d5993a49 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java @@ -125,7 +125,7 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar && resources.getBoolean(R.bool.start_align_taskbar); int actualMargin = resources.getDimensionPixelSize(R.dimen.taskbar_icon_spacing); - int actualIconSize = mActivityContext.getDeviceProfile().iconSizePx; + int actualIconSize = mActivityContext.getDeviceProfile().taskbarIconSize; mIconTouchSize = Math.max(actualIconSize, resources.getDimensionPixelSize(R.dimen.taskbar_icon_min_touch_size)); diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java index f2ba54af3f..4ab093f220 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java @@ -59,7 +59,6 @@ import com.android.launcher3.anim.RoundedRectRevealOutlineProvider; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.icons.ThemedIconDrawable; import com.android.launcher3.model.data.ItemInfo; -import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.ItemInfoMatcher; import com.android.launcher3.util.LauncherBindableItemsContainer; import com.android.launcher3.util.MultiPropertyFactory; @@ -134,9 +133,7 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar mTaskbarIconAlpha = new MultiValueAlpha(mTaskbarView, NUM_ALPHA_CHANNELS); mTaskbarIconAlpha.setUpdateVisibility(true); mModelCallbacks = new TaskbarModelCallbacks(activity, mTaskbarView); - mTaskbarBottomMargin = DisplayController.isTransientTaskbar(activity) - ? activity.getResources().getDimensionPixelSize(R.dimen.transient_taskbar_margin) - : 0; + mTaskbarBottomMargin = activity.getDeviceProfile().taskbarBottomMargin; mStashedHandleHeight = activity.getResources() .getDimensionPixelSize(R.dimen.taskbar_stashed_handle_height); mLauncherThemedIconsBackgroundColor = ThemedIconDrawable.getColors(mActivity)[0]; @@ -157,7 +154,7 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar mTaskbarView.init(new TaskbarViewCallbacks()); mTaskbarView.getLayoutParams().height = isPhoneMode(mActivity.getDeviceProfile()) ? mActivity.getResources().getDimensionPixelSize(R.dimen.taskbar_size) - : mActivity.getDeviceProfile().taskbarSize; + : mActivity.getDeviceProfile().taskbarHeight; mTaskbarIconScaleForStash.updateValue(1f); @@ -429,7 +426,7 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar PendingAnimation setter = new PendingAnimation(100); DeviceProfile taskbarDp = mActivity.getDeviceProfile(); Rect hotseatPadding = launcherDp.getHotseatLayoutPadding(mActivity); - float scaleUp = ((float) launcherDp.iconSizePx) / taskbarDp.iconSizePx; + float scaleUp = ((float) launcherDp.iconSizePx) / taskbarDp.taskbarIconSize; int borderSpacing = launcherDp.hotseatBorderSpace; int hotseatCellSize = DeviceProfile.calculateCellWidth( launcherDp.availableWidthPx - hotseatPadding.left - hotseatPadding.right, @@ -451,7 +448,7 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar } int collapsedHeight = mActivity.getDefaultTaskbarWindowHeight(); - int expandedHeight = Math.max(collapsedHeight, taskbarDp.taskbarSize + offsetY); + int expandedHeight = Math.max(collapsedHeight, taskbarDp.taskbarHeight + offsetY); setter.addOnFrameListener(anim -> mActivity.setTaskbarWindowHeight( anim.getAnimatedFraction() > 0 ? expandedHeight : collapsedHeight)); @@ -485,8 +482,9 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar : hotseatPadding.left - borderSpacing - launcherDp.hotseatQsbWidth / 2f; float childCenter = (child.getLeft() + child.getRight()) / 2f; float halfQsbIconWidthDiff = - (launcherDp.hotseatQsbWidth - taskbarDp.iconSizePx) / 2f; - float scale = ((float) taskbarDp.iconSizePx) / launcherDp.hotseatQsbVisualHeight; + (launcherDp.hotseatQsbWidth - taskbarDp.taskbarIconSize) / 2f; + float scale = ((float) taskbarDp.taskbarIconSize) + / launcherDp.hotseatQsbVisualHeight; setter.addFloat(child, SCALE_PROPERTY, scale, 1f, interpolator); float fromX = isRtl ? -halfQsbIconWidthDiff : halfQsbIconWidthDiff; @@ -559,7 +557,7 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar return; } mActivity.setTaskbarWindowHeight( - deviceProfile.taskbarSize + deviceProfile.getTaskbarOffsetY()); + deviceProfile.taskbarHeight + deviceProfile.getTaskbarOffsetY()); mTaskbarNavButtonTranslationY.updateValue(-deviceProfile.getTaskbarOffsetY()); } diff --git a/quickstep/src/com/android/quickstep/BaseActivityInterface.java b/quickstep/src/com/android/quickstep/BaseActivityInterface.java index 487da9208a..ce41c60e89 100644 --- a/quickstep/src/com/android/quickstep/BaseActivityInterface.java +++ b/quickstep/src/com/android/quickstep/BaseActivityInterface.java @@ -306,7 +306,7 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T out.x = dp.widthPx; out.y = dp.heightPx; if (dp.isTablet && !DisplayController.isTransientTaskbar(context)) { - out.y -= dp.taskbarSize; + out.y -= dp.taskbarHeight; } } @@ -365,7 +365,7 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T calculateTaskSize(context, dp, outRect, orientedState); boolean isGridOnlyOverview = dp.isTablet && FeatureFlags.ENABLE_GRID_ONLY_OVERVIEW.get(); int claimedSpaceBelow = isGridOnlyOverview - ? dp.overviewActionsTopMarginPx + dp.overviewActionsHeight + dp.stashedTaskbarSize + ? dp.overviewActionsTopMarginPx + dp.overviewActionsHeight + dp.stashedTaskbarHeight : (dp.heightPx - outRect.bottom - dp.getInsets().bottom); int minimumHorizontalPadding = 0; if (!isGridOnlyOverview) { diff --git a/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java b/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java index 0d61bc85f8..f8893bd9dd 100644 --- a/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java +++ b/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java @@ -336,7 +336,7 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { boolean isRtlEnabled = !mIsRecentsRtl; mPositionHelper.updateThumbnailMatrix( mThumbnailPosition, mThumbnailData, mTaskRect.width(), mTaskRect.height(), - mDp.widthPx, mDp.heightPx, mDp.taskbarSize, mDp.isTablet, + mDp.widthPx, mDp.heightPx, mDp.taskbarHeight, mDp.isTablet, mOrientationState.getRecentsActivityRotation(), isRtlEnabled); mPositionHelper.getMatrix().invert(mInversePositionMatrix); if (DEBUG) { diff --git a/quickstep/src/com/android/quickstep/views/OverviewActionsView.java b/quickstep/src/com/android/quickstep/views/OverviewActionsView.java index 409504b167..e47c0893e5 100644 --- a/quickstep/src/com/android/quickstep/views/OverviewActionsView.java +++ b/quickstep/src/com/android/quickstep/views/OverviewActionsView.java @@ -283,7 +283,7 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo } if (mDp.isTablet && FeatureFlags.ENABLE_GRID_ONLY_OVERVIEW.get()) { - return mDp.stashedTaskbarSize; + return mDp.stashedTaskbarHeight; } // Align to bottom of task Rect. diff --git a/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java b/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java index 899fea2c24..f746203f3b 100644 --- a/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java +++ b/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java @@ -559,7 +559,7 @@ public class TaskThumbnailView extends View { boolean isRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL; mPreviewPositionHelper.updateThumbnailMatrix(mPreviewRect, mThumbnailData, getMeasuredWidth(), getMeasuredHeight(), dp.widthPx, dp.heightPx, - dp.taskbarSize, dp.isTablet, currentRotation, isRtl); + dp.taskbarHeight, dp.isTablet, currentRotation, isRtl); mBitmapShader.setLocalMatrix(mPreviewPositionHelper.getMatrix()); mPaint.setShader(mBitmapShader); diff --git a/quickstep/tests/src/com/android/quickstep/FullscreenDrawParamsTest.kt b/quickstep/tests/src/com/android/quickstep/FullscreenDrawParamsTest.kt index 6c0e7dc8fd..a9dc043535 100644 --- a/quickstep/tests/src/com/android/quickstep/FullscreenDrawParamsTest.kt +++ b/quickstep/tests/src/com/android/quickstep/FullscreenDrawParamsTest.kt @@ -64,7 +64,7 @@ class FullscreenDrawParamsTest : FakeInvariantDeviceProfileTest() { canvasHeight, dp.widthPx, dp.heightPx, - dp.taskbarSize, + dp.taskbarHeight, dp.isTablet, currentRotation, isRtl @@ -99,7 +99,7 @@ class FullscreenDrawParamsTest : FakeInvariantDeviceProfileTest() { canvasHeight, dp.widthPx, dp.heightPx, - dp.taskbarSize, + dp.taskbarHeight, dp.isTablet, currentRotation, isRtl @@ -134,7 +134,7 @@ class FullscreenDrawParamsTest : FakeInvariantDeviceProfileTest() { canvasHeight, dp.widthPx, dp.heightPx, - dp.taskbarSize, + dp.taskbarHeight, dp.isTablet, currentRotation, isRtl @@ -169,7 +169,7 @@ class FullscreenDrawParamsTest : FakeInvariantDeviceProfileTest() { canvasHeight, dp.widthPx, dp.heightPx, - dp.taskbarSize, + dp.taskbarHeight, dp.isTablet, currentRotation, isRtl diff --git a/res/values/attrs.xml b/res/values/attrs.xml index 96938ca845..682153f7e4 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -380,6 +380,15 @@ <!-- defaults to hotseatQsbSpace, if not specified --> <attr name="hotseatQsbSpaceTwoPanelPortrait" format="float" /> + <!-- defaults to res.taskbar_icon_size, if not specified --> + <attr name="transientTaskbarIconSize" format="float" /> + <!-- defaults to transientTaskbarIconSize, if not specified --> + <attr name="transientTaskbarIconSizeLandscape" format="float" /> + <!-- defaults to transientTaskbarIconSize, if not specified --> + <attr name="transientTaskbarIconSizeTwoPanelLandscape" format="float" /> + <!-- defaults to transientTaskbarIconSize, if not specified --> + <attr name="transientTaskbarIconSizeTwoPanelPortrait" format="float" /> + <attr name="iconImageSize" format="float" /> <!-- defaults to iconImageSize, if not specified --> <attr name="iconSizeLandscape" format="float" /> diff --git a/res/values/config.xml b/res/values/config.xml index e13b51c0ee..5a6698b80e 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -164,6 +164,10 @@ <item name="swipe_up_rect_xy_damping_ratio" type="dimen" format="float">0.8</item> <item name="swipe_up_rect_xy_stiffness" type="dimen" format="float">200</item> + <!-- Taskbar --> + <!-- This is a float because it is converted to dp later in DeviceProfile --> + <item name="taskbar_icon_size" type="dimen" format="float">0</item> + <!-- These params are only used for hotseat items on devices that have a taskbar. --> <item name="taskbar_swipe_up_rect_x_stiffness" type="dimen" format="float">350</item> <item name="taskbar_swipe_up_rect_x_damping" type="dimen" format="float">0.9</item> diff --git a/res/values/dimens.xml b/res/values/dimens.xml index e62cff5a4f..cd41bafcee 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -371,14 +371,13 @@ <dimen name="min_hotseat_icon_space">18dp</dimen> <dimen name="max_hotseat_icon_space">50dp</dimen> <dimen name="min_hotseat_qsb_width">0dp</dimen> - <dimen name="taskbar_icon_size">0dp</dimen> - <dimen name="transient_taskbar_icon_size">0dp</dimen> + <!-- Transient taskbar (placeholders to compile in Launcher3 without Quickstep) --> - <dimen name="transient_taskbar_size">0dp</dimen> - <dimen name="transient_taskbar_margin">0dp</dimen> + <dimen name="transient_taskbar_padding">0dp</dimen> + <dimen name="transient_taskbar_bottom_margin">0dp</dimen> <dimen name="transient_taskbar_shadow_blur">0dp</dimen> <dimen name="transient_taskbar_key_shadow_distance">0dp</dimen> - <dimen name="transient_taskbar_stashed_size">0dp</dimen> + <dimen name="transient_taskbar_stashed_height">0dp</dimen> <dimen name="transient_taskbar_clamped_offset_bound">0dp</dimen> <dimen name="taskbar_icon_spacing">0dp</dimen> <dimen name="taskbar_nav_buttons_size">0dp</dimen> diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index aca03e37f3..fcb220ebd8 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -44,6 +44,7 @@ import android.view.Surface; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.content.res.ResourcesCompat; import com.android.launcher3.CellLayout.ContainerType; import com.android.launcher3.DevicePaddings.DevicePadding; @@ -262,10 +263,10 @@ public class DeviceProfile { public boolean isTaskbarPresent; // Whether Taskbar will inset the bottom of apps by taskbarSize. public boolean isTaskbarPresentInApps; - public int taskbarSize; - public int transientTaskbarSize; - public int stashedTaskbarSize; - public int transientTaskbarMargin; + public final int taskbarHeight; + public final int stashedTaskbarHeight; + public final int taskbarBottomMargin; + public final int taskbarIconSize; // DragController public int flingToDeleteThresholdVelocity; @@ -328,17 +329,21 @@ public class DeviceProfile { } } - if (isTaskbarPresent) { - transientTaskbarSize = res.getDimensionPixelSize(R.dimen.transient_taskbar_size); - transientTaskbarMargin = res.getDimensionPixelSize(R.dimen.transient_taskbar_margin); - if (DisplayController.isTransientTaskbar(context)) { - taskbarSize = transientTaskbarSize; - stashedTaskbarSize = - res.getDimensionPixelSize(R.dimen.transient_taskbar_stashed_size); - } else { - taskbarSize = res.getDimensionPixelSize(R.dimen.taskbar_size); - stashedTaskbarSize = res.getDimensionPixelSize(R.dimen.taskbar_stashed_size); - } + if (DisplayController.isTransientTaskbar(context)) { + float invTransientIconSizeDp = inv.transientTaskbarIconSize[mTypeIndex]; + taskbarIconSize = pxFromDp(invTransientIconSizeDp, mMetrics); + taskbarHeight = taskbarIconSize + + (2 * res.getDimensionPixelSize(R.dimen.transient_taskbar_padding)); + stashedTaskbarHeight = + res.getDimensionPixelSize(R.dimen.transient_taskbar_stashed_height); + taskbarBottomMargin = + res.getDimensionPixelSize(R.dimen.transient_taskbar_bottom_margin); + } else { + taskbarIconSize = pxFromDp(ResourcesCompat.getFloat(res, R.dimen.taskbar_icon_size), + mMetrics); + taskbarHeight = res.getDimensionPixelSize(R.dimen.taskbar_size); + stashedTaskbarHeight = res.getDimensionPixelSize(R.dimen.taskbar_stashed_size); + taskbarBottomMargin = 0; } edgeMarginPx = res.getDimensionPixelSize(R.dimen.dynamic_grid_edge_margin); @@ -1421,7 +1426,7 @@ public class DeviceProfile { * Returns the number of pixels the taskbar is translated from the bottom of the screen. */ public int getTaskbarOffsetY() { - int taskbarIconBottomSpace = (taskbarSize - iconSizePx) / 2; + int taskbarIconBottomSpace = (taskbarHeight - iconSizePx) / 2; int launcherIconBottomSpace = Math.min((hotseatCellHeightPx - iconSizePx) / 2, gridVisualizationPaddingY); return getHotseatBarBottomPadding() + launcherIconBottomSpace - taskbarIconBottomSpace; @@ -1432,7 +1437,7 @@ public class DeviceProfile { */ public int getOverviewActionsClaimedSpaceBelow() { if (isTaskbarPresent) { - return transientTaskbarSize + transientTaskbarMargin * 2; + return taskbarHeight + taskbarBottomMargin * 2; } return mInsets.bottom; } @@ -1470,7 +1475,7 @@ public class DeviceProfile { mInsets.top + availableHeightPx); } else { // Folders should only appear below the drop target bar and above the hotseat - int hotseatTop = isTaskbarPresent ? taskbarSize : hotseatBarSizePx; + int hotseatTop = isTaskbarPresent ? taskbarHeight : hotseatBarSizePx; return new Rect(mInsets.left + edgeMarginPx, mInsets.top + dropTargetBarSizePx + edgeMarginPx, mInsets.left + availableWidthPx - edgeMarginPx, @@ -1671,7 +1676,10 @@ public class DeviceProfile { writer.println(prefix + "\tisTaskbarPresent:" + isTaskbarPresent); writer.println(prefix + "\tisTaskbarPresentInApps:" + isTaskbarPresentInApps); - writer.println(prefix + pxToDpStr("taskbarSize", taskbarSize)); + writer.println(prefix + pxToDpStr("taskbarHeight", taskbarHeight)); + writer.println(prefix + pxToDpStr("stashedTaskbarHeight", stashedTaskbarHeight)); + writer.println(prefix + pxToDpStr("taskbarBottomMargin", taskbarBottomMargin)); + writer.println(prefix + pxToDpStr("taskbarIconSize", taskbarIconSize)); writer.println(prefix + pxToDpStr("desiredWorkspaceHorizontalMarginPx", desiredWorkspaceHorizontalMarginPx)); diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java index a498323140..47396a530f 100644 --- a/src/com/android/launcher3/InvariantDeviceProfile.java +++ b/src/com/android/launcher3/InvariantDeviceProfile.java @@ -149,6 +149,8 @@ public class InvariantDeviceProfile { public float[] allAppsIconTextSize; public PointF[] allAppsBorderSpaces; + public float[] transientTaskbarIconSize; + private SparseArray<TypedValue> mExtraAttrs; /** @@ -396,6 +398,8 @@ public class InvariantDeviceProfile { inlineQsb = closestProfile.inlineQsb; + transientTaskbarIconSize = displayOption.transientTaskbarIconSize; + // If the partner customization apk contains any grid overrides, apply them // Supported overrides: numRows, numColumns, iconSize applyPartnerDeviceProfileOverrides(context, metrics); @@ -908,9 +912,13 @@ public class InvariantDeviceProfile { private final float[] allAppsIconTextSizes = new float[COUNT_SIZES]; private final PointF[] allAppsBorderSpaces = new PointF[COUNT_SIZES]; + private final float[] transientTaskbarIconSize = new float[COUNT_SIZES]; + DisplayOption(GridOption grid, Context context, AttributeSet attrs) { this.grid = grid; + Resources res = context.getResources(); + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ProfileDisplayOption); minWidthDps = a.getFloat(R.styleable.ProfileDisplayOption_minWidthDps, 0); @@ -1101,8 +1109,7 @@ public class InvariantDeviceProfile { hotseatBarBottomSpace[INDEX_DEFAULT] = a.getFloat( R.styleable.ProfileDisplayOption_hotseatBarBottomSpace, - ResourcesCompat.getFloat(context.getResources(), - R.dimen.hotseat_bar_bottom_space_default)); + ResourcesCompat.getFloat(res, R.dimen.hotseat_bar_bottom_space_default)); hotseatBarBottomSpace[INDEX_LANDSCAPE] = a.getFloat( R.styleable.ProfileDisplayOption_hotseatBarBottomSpaceLandscape, hotseatBarBottomSpace[INDEX_DEFAULT]); @@ -1115,8 +1122,7 @@ public class InvariantDeviceProfile { hotseatQsbSpace[INDEX_DEFAULT] = a.getFloat( R.styleable.ProfileDisplayOption_hotseatQsbSpace, - ResourcesCompat.getFloat(context.getResources(), - R.dimen.hotseat_qsb_space_default)); + ResourcesCompat.getFloat(res, R.dimen.hotseat_qsb_space_default)); hotseatQsbSpace[INDEX_LANDSCAPE] = a.getFloat( R.styleable.ProfileDisplayOption_hotseatQsbSpaceLandscape, hotseatQsbSpace[INDEX_DEFAULT]); @@ -1127,6 +1133,19 @@ public class InvariantDeviceProfile { R.styleable.ProfileDisplayOption_hotseatQsbSpaceTwoPanelPortrait, hotseatQsbSpace[INDEX_DEFAULT]); + transientTaskbarIconSize[INDEX_DEFAULT] = a.getFloat( + R.styleable.ProfileDisplayOption_transientTaskbarIconSize, + ResourcesCompat.getFloat(res, R.dimen.taskbar_icon_size)); + transientTaskbarIconSize[INDEX_LANDSCAPE] = a.getFloat( + R.styleable.ProfileDisplayOption_transientTaskbarIconSizeLandscape, + transientTaskbarIconSize[INDEX_DEFAULT]); + transientTaskbarIconSize[INDEX_TWO_PANEL_LANDSCAPE] = a.getFloat( + R.styleable.ProfileDisplayOption_transientTaskbarIconSizeTwoPanelLandscape, + transientTaskbarIconSize[INDEX_DEFAULT]); + transientTaskbarIconSize[INDEX_TWO_PANEL_PORTRAIT] = a.getFloat( + R.styleable.ProfileDisplayOption_transientTaskbarIconSizeTwoPanelPortrait, + hotseatQsbSpace[INDEX_DEFAULT]); + a.recycle(); } @@ -1148,6 +1167,7 @@ public class InvariantDeviceProfile { allAppsIconSizes[i] = 0; allAppsIconTextSizes[i] = 0; allAppsBorderSpaces[i] = new PointF(); + transientTaskbarIconSize[i] = 0; } } @@ -1168,6 +1188,7 @@ public class InvariantDeviceProfile { allAppsIconTextSizes[i] *= w; allAppsBorderSpaces[i].x *= w; allAppsBorderSpaces[i].y *= w; + transientTaskbarIconSize[i] *= w; } return this; @@ -1190,6 +1211,7 @@ public class InvariantDeviceProfile { allAppsIconTextSizes[i] += p.allAppsIconTextSizes[i]; allAppsBorderSpaces[i].x += p.allAppsBorderSpaces[i].x; allAppsBorderSpaces[i].y += p.allAppsBorderSpaces[i].y; + transientTaskbarIconSize[i] += p.transientTaskbarIconSize[i]; } return this; diff --git a/src/com/android/launcher3/allapps/WorkModeSwitch.java b/src/com/android/launcher3/allapps/WorkModeSwitch.java index 3f2f21d470..ca16b24fe9 100644 --- a/src/com/android/launcher3/allapps/WorkModeSwitch.java +++ b/src/com/android/launcher3/allapps/WorkModeSwitch.java @@ -15,8 +15,6 @@ */ package com.android.launcher3.allapps; -import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_WORK_FAB_BUTTON_COLLAPSE; -import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_WORK_FAB_BUTTON_EXTEND; import static com.android.launcher3.workprofile.PersonalWorkSlidingTabStrip.getTabWidth; import android.animation.LayoutTransition; @@ -116,7 +114,7 @@ public class WorkModeSwitch extends LinearLayout implements Insettable, } if (!dp.isGestureMode && dp.isTaskbarPresent) { - bottomMargin += dp.taskbarSize; + bottomMargin += dp.taskbarHeight; } lp.bottomMargin = bottomMargin; diff --git a/src/com/android/launcher3/util/DimensionUtils.kt b/src/com/android/launcher3/util/DimensionUtils.kt index 1922310b28..9188c2ead4 100644 --- a/src/com/android/launcher3/util/DimensionUtils.kt +++ b/src/com/android/launcher3/util/DimensionUtils.kt @@ -37,7 +37,7 @@ object DimensionUtils { // Taskbar for large screen if (!isPhoneMode) { p.x = ViewGroup.LayoutParams.MATCH_PARENT - p.y = deviceProfile.taskbarSize + p.y = deviceProfile.taskbarHeight return p } diff --git a/src/com/android/launcher3/views/BaseDragLayer.java b/src/com/android/launcher3/views/BaseDragLayer.java index 823003ce06..e4df413489 100644 --- a/src/com/android/launcher3/views/BaseDragLayer.java +++ b/src/com/android/launcher3/views/BaseDragLayer.java @@ -559,7 +559,7 @@ public abstract class BaseDragLayer<T extends Context & ActivityContext> DeviceProfile dp = mActivity.getDeviceProfile(); if (dp.isTaskbarPresent) { // Ignore taskbar gesture insets to avoid interfering with TouchControllers. - gestureInsetBottom = Math.max(0, gestureInsetBottom - dp.taskbarSize); + gestureInsetBottom = Math.max(0, gestureInsetBottom - dp.taskbarHeight); } mSystemGestureRegion.set( Math.max(gestureInsets.left, imeInset.left), diff --git a/src/com/android/launcher3/views/Snackbar.java b/src/com/android/launcher3/views/Snackbar.java index 86b341953f..8d5838e592 100644 --- a/src/com/android/launcher3/views/Snackbar.java +++ b/src/com/android/launcher3/views/Snackbar.java @@ -101,7 +101,7 @@ public class Snackbar extends AbstractFloatingView { DeviceProfile deviceProfile = activity.getDeviceProfile(); params.setMargins(0, 0, 0, marginBottom + (deviceProfile.isTaskbarPresent - ? deviceProfile.taskbarSize + deviceProfile.getTaskbarOffsetY() + ? deviceProfile.taskbarHeight + deviceProfile.getTaskbarOffsetY() : insets.bottom)); TextView labelView = snackbar.findViewById(R.id.label); diff --git a/tests/src/com/android/launcher3/nonquickstep/DeviceProfileDumpTest.kt b/tests/src/com/android/launcher3/nonquickstep/DeviceProfileDumpTest.kt index 86d21f3ddc..13db6c76c8 100644 --- a/tests/src/com/android/launcher3/nonquickstep/DeviceProfileDumpTest.kt +++ b/tests/src/com/android/launcher3/nonquickstep/DeviceProfileDumpTest.kt @@ -126,7 +126,10 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\thotseatQsbWidth: 0.0px (0.0dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:false\n" + - "\ttaskbarSize: 0.0px (0.0dp)\n" + + "\ttaskbarHeight: 0.0px (0.0dp)\n" + + "\tstashedTaskbarHeight: 0.0px (0.0dp)\n" + + "\ttaskbarBottomMargin: 0.0px (0.0dp)\n" + + "\ttaskbarIconSize: 0.0px (0.0dp)\n" + "\tdesiredWorkspaceHorizontalMarginPx: 21.0px (8.0dp)\n" + "\tworkspacePadding.left: 0.0px (0.0dp)\n" + "\tworkspacePadding.top: 0.0px (0.0dp)\n" + @@ -258,7 +261,10 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\thotseatQsbWidth: 0.0px (0.0dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:false\n" + - "\ttaskbarSize: 0.0px (0.0dp)\n" + + "\ttaskbarHeight: 0.0px (0.0dp)\n" + + "\tstashedTaskbarHeight: 0.0px (0.0dp)\n" + + "\ttaskbarBottomMargin: 0.0px (0.0dp)\n" + + "\ttaskbarIconSize: 0.0px (0.0dp)\n" + "\tdesiredWorkspaceHorizontalMarginPx: 21.0px (8.0dp)\n" + "\tworkspacePadding.left: 0.0px (0.0dp)\n" + "\tworkspacePadding.top: 0.0px (0.0dp)\n" + @@ -390,7 +396,10 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\thotseatQsbWidth: 0.0px (0.0dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:false\n" + - "\ttaskbarSize: 0.0px (0.0dp)\n" + + "\ttaskbarHeight: 0.0px (0.0dp)\n" + + "\tstashedTaskbarHeight: 0.0px (0.0dp)\n" + + "\ttaskbarBottomMargin: 0.0px (0.0dp)\n" + + "\ttaskbarIconSize: 0.0px (0.0dp)\n" + "\tdesiredWorkspaceHorizontalMarginPx: 0.0px (0.0dp)\n" + "\tworkspacePadding.left: 10.0px (3.8095238dp)\n" + "\tworkspacePadding.top: 0.0px (0.0dp)\n" + @@ -522,7 +531,10 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\thotseatQsbWidth: 0.0px (0.0dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:false\n" + - "\ttaskbarSize: 0.0px (0.0dp)\n" + + "\ttaskbarHeight: 0.0px (0.0dp)\n" + + "\tstashedTaskbarHeight: 0.0px (0.0dp)\n" + + "\ttaskbarBottomMargin: 0.0px (0.0dp)\n" + + "\ttaskbarIconSize: 0.0px (0.0dp)\n" + "\tdesiredWorkspaceHorizontalMarginPx: 0.0px (0.0dp)\n" + "\tworkspacePadding.left: 10.0px (3.8095238dp)\n" + "\tworkspacePadding.top: 0.0px (0.0dp)\n" + @@ -655,7 +667,10 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\thotseatQsbWidth: 1224.0px (612.0dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:true\n" + - "\ttaskbarSize: 0.0px (0.0dp)\n" + + "\ttaskbarHeight: 0.0px (0.0dp)\n" + + "\tstashedTaskbarHeight: 0.0px (0.0dp)\n" + + "\ttaskbarBottomMargin: 0.0px (0.0dp)\n" + + "\ttaskbarIconSize: 0.0px (0.0dp)\n" + "\tdesiredWorkspaceHorizontalMarginPx: 240.0px (120.0dp)\n" + "\tworkspacePadding.left: 181.0px (90.5dp)\n" + "\tworkspacePadding.top: 0.0px (0.0dp)\n" + @@ -788,7 +803,10 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\thotseatQsbWidth: 1224.0px (612.0dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:true\n" + - "\ttaskbarSize: 0.0px (0.0dp)\n" + + "\ttaskbarHeight: 0.0px (0.0dp)\n" + + "\tstashedTaskbarHeight: 0.0px (0.0dp)\n" + + "\ttaskbarBottomMargin: 0.0px (0.0dp)\n" + + "\ttaskbarIconSize: 0.0px (0.0dp)\n" + "\tdesiredWorkspaceHorizontalMarginPx: 240.0px (120.0dp)\n" + "\tworkspacePadding.left: 181.0px (90.5dp)\n" + "\tworkspacePadding.top: 0.0px (0.0dp)\n" + @@ -921,7 +939,10 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\thotseatQsbWidth: 1300.0px (650.0dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:true\n" + - "\ttaskbarSize: 0.0px (0.0dp)\n" + + "\ttaskbarHeight: 0.0px (0.0dp)\n" + + "\tstashedTaskbarHeight: 0.0px (0.0dp)\n" + + "\ttaskbarBottomMargin: 0.0px (0.0dp)\n" + + "\ttaskbarIconSize: 0.0px (0.0dp)\n" + "\tdesiredWorkspaceHorizontalMarginPx: 108.0px (54.0dp)\n" + "\tworkspacePadding.left: 36.0px (18.0dp)\n" + "\tworkspacePadding.top: 132.0px (66.0dp)\n" + @@ -1054,7 +1075,10 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\thotseatQsbWidth: 1300.0px (650.0dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:true\n" + - "\ttaskbarSize: 0.0px (0.0dp)\n" + + "\ttaskbarHeight: 0.0px (0.0dp)\n" + + "\tstashedTaskbarHeight: 0.0px (0.0dp)\n" + + "\ttaskbarBottomMargin: 0.0px (0.0dp)\n" + + "\ttaskbarIconSize: 0.0px (0.0dp)\n" + "\tdesiredWorkspaceHorizontalMarginPx: 108.0px (54.0dp)\n" + "\tworkspacePadding.left: 36.0px (18.0dp)\n" + "\tworkspacePadding.top: 132.0px (66.0dp)\n" + @@ -1192,7 +1216,10 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\thotseatQsbWidth: 0.0px (0.0dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:true\n" + - "\ttaskbarSize: 0.0px (0.0dp)\n" + + "\ttaskbarHeight: 0.0px (0.0dp)\n" + + "\tstashedTaskbarHeight: 0.0px (0.0dp)\n" + + "\ttaskbarBottomMargin: 0.0px (0.0dp)\n" + + "\ttaskbarIconSize: 0.0px (0.0dp)\n" + "\tdesiredWorkspaceHorizontalMarginPx: 21.0px (8.0dp)\n" + "\tworkspacePadding.left: 21.0px (8.0dp)\n" + "\tworkspacePadding.top: 30.0px (11.428572dp)\n" + @@ -1329,7 +1356,10 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\thotseatQsbWidth: 0.0px (0.0dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:true\n" + - "\ttaskbarSize: 0.0px (0.0dp)\n" + + "\ttaskbarHeight: 0.0px (0.0dp)\n" + + "\tstashedTaskbarHeight: 0.0px (0.0dp)\n" + + "\ttaskbarBottomMargin: 0.0px (0.0dp)\n" + + "\ttaskbarIconSize: 0.0px (0.0dp)\n" + "\tdesiredWorkspaceHorizontalMarginPx: 21.0px (8.0dp)\n" + "\tworkspacePadding.left: 21.0px (8.0dp)\n" + "\tworkspacePadding.top: 30.0px (11.428572dp)\n" + @@ -1466,7 +1496,10 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\thotseatQsbWidth: 0.0px (0.0dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:true\n" + - "\ttaskbarSize: 0.0px (0.0dp)\n" + + "\ttaskbarHeight: 0.0px (0.0dp)\n" + + "\tstashedTaskbarHeight: 0.0px (0.0dp)\n" + + "\ttaskbarBottomMargin: 0.0px (0.0dp)\n" + + "\ttaskbarIconSize: 0.0px (0.0dp)\n" + "\tdesiredWorkspaceHorizontalMarginPx: 21.0px (8.0dp)\n" + "\tworkspacePadding.left: 21.0px (8.0dp)\n" + "\tworkspacePadding.top: 24.0px (9.142858dp)\n" + @@ -1599,7 +1632,10 @@ class DeviceProfileDumpTest : AbstractDeviceProfileTest() { "\thotseatQsbWidth: 0.0px (0.0dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:true\n" + - "\ttaskbarSize: 0.0px (0.0dp)\n" + + "\ttaskbarHeight: 0.0px (0.0dp)\n" + + "\tstashedTaskbarHeight: 0.0px (0.0dp)\n" + + "\ttaskbarBottomMargin: 0.0px (0.0dp)\n" + + "\ttaskbarIconSize: 0.0px (0.0dp)\n" + "\tdesiredWorkspaceHorizontalMarginPx: 21.0px (8.0dp)\n" + "\tworkspacePadding.left: 21.0px (8.0dp)\n" + "\tworkspacePadding.top: 24.0px (9.142858dp)\n" + |