Merge "Fixing Toast Hiding behind Taskbar - Part 2" into udc-dev
diff --git a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java
index 2aa0be6..1744b08 100644
--- a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java
+++ b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java
@@ -28,7 +28,6 @@
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.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 @@
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 8d5838e..2460be1 100644
--- a/src/com/android/launcher3/views/Snackbar.java
+++ b/src/com/android/launcher3/views/Snackbar.java
@@ -65,9 +65,26 @@
show(activity, labelStringRedId, NO_ID, onDismissed, null);
}
+ /** Show a snackbar with just a label. */
+ public static <T extends Context & ActivityContext> 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 <T extends Context & ActivityContext> 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 <T extends Context & ActivityContext> 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 @@
: 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 @@
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) {