Loading res/values/strings.xml +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ <!-- Label for install drop target. [CHAR_LIMIT=20] --> <string name="install_drop_target_label">Install</string> <!-- Label for install dismiss prediction. --> <string translatable="false" name="dismiss_prediction_label">Dismiss prediction</string> <string translatable="false" name="dismiss_prediction_label">Don\'t suggest app</string> <!-- Label for pinning predicted app. --> <string name="pin_prediction" translatable="false">Pin Prediction</string> Loading src/com/android/launcher3/notification/NotificationFooterLayout.java +17 −6 Original line number Diff line number Diff line Loading @@ -80,17 +80,28 @@ public class NotificationFooterLayout extends FrameLayout { int iconSize = res.getDimensionPixelSize(R.dimen.notification_footer_icon_size); mIconLayoutParams = new LayoutParams(iconSize, iconSize); mIconLayoutParams.gravity = Gravity.CENTER_VERTICAL; // Compute margin start for each icon such that the icons between the first one // and the ellipsis are evenly spaced out. setWidth((int) res.getDimension(R.dimen.bg_popup_item_width)); mBackgroundColor = Themes.getAttrColor(context, R.attr.popupColorPrimary); } /** * Compute margin start for each icon such that the icons between the first one and the ellipsis * are evenly spaced out. */ public void setWidth(int width) { if (getLayoutParams() != null) { getLayoutParams().width = width; } Resources res = getResources(); int iconSize = res.getDimensionPixelSize(R.dimen.notification_footer_icon_size); int paddingEnd = res.getDimensionPixelSize(R.dimen.notification_footer_icon_row_padding); int ellipsisSpace = res.getDimensionPixelSize(R.dimen.horizontal_ellipsis_offset) + res.getDimensionPixelSize(R.dimen.horizontal_ellipsis_size); int footerWidth = res.getDimensionPixelSize(R.dimen.bg_popup_item_width); int availableIconRowSpace = footerWidth - paddingEnd - ellipsisSpace int availableIconRowSpace = width - paddingEnd - ellipsisSpace - iconSize * MAX_FOOTER_NOTIFICATIONS; mIconLayoutParams.setMarginStart(availableIconRowSpace / MAX_FOOTER_NOTIFICATIONS); mBackgroundColor = Themes.getAttrColor(context, R.attr.popupColorPrimary); } @Override Loading src/com/android/launcher3/notification/NotificationItemView.java +7 −0 Original line number Diff line number Diff line Loading @@ -86,6 +86,13 @@ public class NotificationItemView { } } /** * Sets width for notification footer and spaces out items evenly */ public void setFooterWidth(int footerWidth) { mFooter.setWidth(footerWidth); } public void removeFooter() { if (mContainer.indexOfChild(mFooter) >= 0) { mContainer.removeView(mFooter); Loading src/com/android/launcher3/popup/PopupContainerWithArrow.java +17 −5 Original line number Diff line number Diff line Loading @@ -37,7 +37,6 @@ import android.os.Build; import android.os.Handler; import android.os.Looper; import android.util.AttributeSet; import android.util.Log; import android.util.Pair; import android.view.MotionEvent; import android.view.View; Loading Loading @@ -66,7 +65,6 @@ import com.android.launcher3.notification.NotificationKeyData; import com.android.launcher3.popup.PopupDataProvider.PopupDataChangeListener; import com.android.launcher3.shortcuts.DeepShortcutView; import com.android.launcher3.shortcuts.ShortcutDragPreviewProvider; import com.android.launcher3.testing.TestProtocol; import com.android.launcher3.touch.ItemClickHandler; import com.android.launcher3.touch.ItemLongClickListener; import com.android.launcher3.util.PackageUserKey; Loading Loading @@ -257,6 +255,16 @@ public class PopupContainerWithArrow extends ArrowPopup implements DragSource, mNumNotifications = notificationKeys.size(); mOriginalIcon = originalIcon; boolean hasDeepShortcuts = shortcutCount > 0; int containerWidth = (int) getResources().getDimension(R.dimen.bg_popup_item_width); // if there are deep shortcuts, we might want to increase the width of shortcuts to fit // horizontally laid out system shortcuts. if (hasDeepShortcuts) { containerWidth = (int) Math.max(containerWidth, systemShortcuts.size() * getResources().getDimension( R.dimen.system_shortcut_header_icon_touch_size)); } // Add views if (mNumNotifications > 0) { // Add notification entries Loading @@ -265,18 +273,22 @@ public class PopupContainerWithArrow extends ArrowPopup implements DragSource, if (mNumNotifications == 1) { mNotificationItemView.removeFooter(); } else { mNotificationItemView.setFooterWidth(containerWidth); } updateNotificationHeader(); } int viewsToFlip = getChildCount(); mSystemShortcutContainer = this; if (shortcutCount > 0) { if (hasDeepShortcuts) { if (mNotificationItemView != null) { mNotificationItemView.addGutter(); } for (int i = shortcutCount; i > 0; i--) { mShortcuts.add(inflateAndAdd(R.layout.deep_shortcut, this)); DeepShortcutView v = inflateAndAdd(R.layout.deep_shortcut, this); v.getLayoutParams().width = containerWidth; mShortcuts.add(v); } updateHiddenShortcuts(); Loading src/com/android/launcher3/popup/SystemShortcut.java +4 −1 Original line number Diff line number Diff line Loading @@ -178,7 +178,10 @@ public abstract class SystemShortcut<T extends BaseDraggingActivity> extends Ite public static final Factory<Launcher> DISMISS_PREDICTION = (launcher, itemInfo) -> { if (!FeatureFlags.ENABLE_PREDICTION_DISMISS.get()) return null; if (itemInfo.container != LauncherSettings.Favorites.CONTAINER_PREDICTION) return null; if (itemInfo.container != LauncherSettings.Favorites.CONTAINER_PREDICTION && itemInfo.container != LauncherSettings.Favorites.CONTAINER_HOTSEAT_PREDICTION) { return null; } return new DismissPrediction(launcher, itemInfo); }; Loading Loading
res/values/strings.xml +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ <!-- Label for install drop target. [CHAR_LIMIT=20] --> <string name="install_drop_target_label">Install</string> <!-- Label for install dismiss prediction. --> <string translatable="false" name="dismiss_prediction_label">Dismiss prediction</string> <string translatable="false" name="dismiss_prediction_label">Don\'t suggest app</string> <!-- Label for pinning predicted app. --> <string name="pin_prediction" translatable="false">Pin Prediction</string> Loading
src/com/android/launcher3/notification/NotificationFooterLayout.java +17 −6 Original line number Diff line number Diff line Loading @@ -80,17 +80,28 @@ public class NotificationFooterLayout extends FrameLayout { int iconSize = res.getDimensionPixelSize(R.dimen.notification_footer_icon_size); mIconLayoutParams = new LayoutParams(iconSize, iconSize); mIconLayoutParams.gravity = Gravity.CENTER_VERTICAL; // Compute margin start for each icon such that the icons between the first one // and the ellipsis are evenly spaced out. setWidth((int) res.getDimension(R.dimen.bg_popup_item_width)); mBackgroundColor = Themes.getAttrColor(context, R.attr.popupColorPrimary); } /** * Compute margin start for each icon such that the icons between the first one and the ellipsis * are evenly spaced out. */ public void setWidth(int width) { if (getLayoutParams() != null) { getLayoutParams().width = width; } Resources res = getResources(); int iconSize = res.getDimensionPixelSize(R.dimen.notification_footer_icon_size); int paddingEnd = res.getDimensionPixelSize(R.dimen.notification_footer_icon_row_padding); int ellipsisSpace = res.getDimensionPixelSize(R.dimen.horizontal_ellipsis_offset) + res.getDimensionPixelSize(R.dimen.horizontal_ellipsis_size); int footerWidth = res.getDimensionPixelSize(R.dimen.bg_popup_item_width); int availableIconRowSpace = footerWidth - paddingEnd - ellipsisSpace int availableIconRowSpace = width - paddingEnd - ellipsisSpace - iconSize * MAX_FOOTER_NOTIFICATIONS; mIconLayoutParams.setMarginStart(availableIconRowSpace / MAX_FOOTER_NOTIFICATIONS); mBackgroundColor = Themes.getAttrColor(context, R.attr.popupColorPrimary); } @Override Loading
src/com/android/launcher3/notification/NotificationItemView.java +7 −0 Original line number Diff line number Diff line Loading @@ -86,6 +86,13 @@ public class NotificationItemView { } } /** * Sets width for notification footer and spaces out items evenly */ public void setFooterWidth(int footerWidth) { mFooter.setWidth(footerWidth); } public void removeFooter() { if (mContainer.indexOfChild(mFooter) >= 0) { mContainer.removeView(mFooter); Loading
src/com/android/launcher3/popup/PopupContainerWithArrow.java +17 −5 Original line number Diff line number Diff line Loading @@ -37,7 +37,6 @@ import android.os.Build; import android.os.Handler; import android.os.Looper; import android.util.AttributeSet; import android.util.Log; import android.util.Pair; import android.view.MotionEvent; import android.view.View; Loading Loading @@ -66,7 +65,6 @@ import com.android.launcher3.notification.NotificationKeyData; import com.android.launcher3.popup.PopupDataProvider.PopupDataChangeListener; import com.android.launcher3.shortcuts.DeepShortcutView; import com.android.launcher3.shortcuts.ShortcutDragPreviewProvider; import com.android.launcher3.testing.TestProtocol; import com.android.launcher3.touch.ItemClickHandler; import com.android.launcher3.touch.ItemLongClickListener; import com.android.launcher3.util.PackageUserKey; Loading Loading @@ -257,6 +255,16 @@ public class PopupContainerWithArrow extends ArrowPopup implements DragSource, mNumNotifications = notificationKeys.size(); mOriginalIcon = originalIcon; boolean hasDeepShortcuts = shortcutCount > 0; int containerWidth = (int) getResources().getDimension(R.dimen.bg_popup_item_width); // if there are deep shortcuts, we might want to increase the width of shortcuts to fit // horizontally laid out system shortcuts. if (hasDeepShortcuts) { containerWidth = (int) Math.max(containerWidth, systemShortcuts.size() * getResources().getDimension( R.dimen.system_shortcut_header_icon_touch_size)); } // Add views if (mNumNotifications > 0) { // Add notification entries Loading @@ -265,18 +273,22 @@ public class PopupContainerWithArrow extends ArrowPopup implements DragSource, if (mNumNotifications == 1) { mNotificationItemView.removeFooter(); } else { mNotificationItemView.setFooterWidth(containerWidth); } updateNotificationHeader(); } int viewsToFlip = getChildCount(); mSystemShortcutContainer = this; if (shortcutCount > 0) { if (hasDeepShortcuts) { if (mNotificationItemView != null) { mNotificationItemView.addGutter(); } for (int i = shortcutCount; i > 0; i--) { mShortcuts.add(inflateAndAdd(R.layout.deep_shortcut, this)); DeepShortcutView v = inflateAndAdd(R.layout.deep_shortcut, this); v.getLayoutParams().width = containerWidth; mShortcuts.add(v); } updateHiddenShortcuts(); Loading
src/com/android/launcher3/popup/SystemShortcut.java +4 −1 Original line number Diff line number Diff line Loading @@ -178,7 +178,10 @@ public abstract class SystemShortcut<T extends BaseDraggingActivity> extends Ite public static final Factory<Launcher> DISMISS_PREDICTION = (launcher, itemInfo) -> { if (!FeatureFlags.ENABLE_PREDICTION_DISMISS.get()) return null; if (itemInfo.container != LauncherSettings.Favorites.CONTAINER_PREDICTION) return null; if (itemInfo.container != LauncherSettings.Favorites.CONTAINER_PREDICTION && itemInfo.container != LauncherSettings.Favorites.CONTAINER_HOTSEAT_PREDICTION) { return null; } return new DismissPrediction(launcher, itemInfo); }; Loading