From 84e959a72a0abdc74dc5f0888b53faf2a4b7355f Mon Sep 17 00:00:00 2001 From: Jagrut Desai Date: Fri, 26 May 2023 16:04:29 -0700 Subject: [PATCH] Fixing Toast Hiding behind Taskbar - Part 2 Test: Visual, Manual Bug: 282964229 Flag: not needed Change-Id: If2373d8f0bc44a555844c78d20877e9636a7e176 --- .../android/quickstep/TaskOverlayFactory.java | 8 +++---- src/com/android/launcher3/views/Snackbar.java | 22 ++++++++++++++++--- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java index 2aa0be6b2b..1744b08cf5 100644 --- a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java +++ b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java @@ -28,7 +28,6 @@ import android.graphics.Matrix; import android.graphics.Rect; import android.os.Build; import android.view.View; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; @@ -42,6 +41,7 @@ import com.android.launcher3.model.data.WorkspaceItemInfo; import com.android.launcher3.popup.SystemShortcut; import com.android.launcher3.util.ResourceBasedOverride; import com.android.launcher3.views.ActivityContext; +import com.android.launcher3.views.Snackbar; import com.android.quickstep.util.RecentsOrientedState; import com.android.quickstep.views.OverviewActionsView; import com.android.quickstep.views.RecentsView; @@ -272,10 +272,8 @@ public class TaskOverlayFactory implements ResourceBasedOverride { String message = activityContext.getStringCache() != null ? activityContext.getStringCache().disabledByAdminMessage : mThumbnailView.getContext().getString(R.string.blocked_by_policy); - Toast.makeText( - mThumbnailView.getContext(), - message, - Toast.LENGTH_LONG).show(); + + Snackbar.show(BaseActivity.fromContext(mThumbnailView.getContext()), message, null); } /** Called when the snapshot has updated its full screen drawing parameters. */ diff --git a/src/com/android/launcher3/views/Snackbar.java b/src/com/android/launcher3/views/Snackbar.java index 8d5838e592..2460be17c5 100644 --- a/src/com/android/launcher3/views/Snackbar.java +++ b/src/com/android/launcher3/views/Snackbar.java @@ -65,9 +65,26 @@ public class Snackbar extends AbstractFloatingView { show(activity, labelStringRedId, NO_ID, onDismissed, null); } + /** Show a snackbar with just a label. */ + public static void show(T activity, String labelString, + Runnable onDismissed) { + show(activity, labelString, NO_ID, onDismissed, null); + } + /** Show a snackbar with a label and action. */ public static void show(T activity, int labelStringResId, int actionStringResId, Runnable onDismissed, @Nullable Runnable onActionClicked) { + show( + activity, + activity.getResources().getString(labelStringResId), + actionStringResId, + onDismissed, + onActionClicked); + } + + /** Show a snackbar with a label and action. */ + public static void show(T activity, String labelString, + int actionStringResId, Runnable onDismissed, @Nullable Runnable onActionClicked) { closeOpenViews(activity, true, TYPE_SNACKBAR); Snackbar snackbar = new Snackbar(activity, null); // Set some properties here since inflated xml only contains the children. @@ -105,8 +122,7 @@ public class Snackbar extends AbstractFloatingView { : insets.bottom)); TextView labelView = snackbar.findViewById(R.id.label); - String labelText = res.getString(labelStringResId); - labelView.setText(labelText); + labelView.setText(labelString); TextView actionView = snackbar.findViewById(R.id.action); float actionWidth; @@ -127,7 +143,7 @@ public class Snackbar extends AbstractFloatingView { actionView.setVisibility(GONE); } - int totalContentWidth = (int) (labelView.getPaint().measureText(labelText) + actionWidth) + int totalContentWidth = (int) (labelView.getPaint().measureText(labelString) + actionWidth) + labelView.getPaddingRight() + labelView.getPaddingLeft() + padding * 2; if (totalContentWidth > params.width) {