summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/widget/WidgetsAndMore.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/widget/WidgetsAndMore.java')
-rw-r--r--src/com/android/launcher3/widget/WidgetsAndMore.java35
1 files changed, 25 insertions, 10 deletions
diff --git a/src/com/android/launcher3/widget/WidgetsAndMore.java b/src/com/android/launcher3/widget/WidgetsAndMore.java
index 3ed2530b3..1aea534fd 100644
--- a/src/com/android/launcher3/widget/WidgetsAndMore.java
+++ b/src/com/android/launcher3/widget/WidgetsAndMore.java
@@ -46,12 +46,15 @@ import com.android.launcher3.dragndrop.DragController;
import com.android.launcher3.dragndrop.DragOptions;
import com.android.launcher3.model.WidgetItem;
import com.android.launcher3.userevent.nano.LauncherLogProto;
+import com.android.launcher3.util.PackageUserKey;
import com.android.launcher3.util.TouchController;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import static android.R.attr.bottom;
+
/**
* Bottom sheet for the "Widgets & more" long-press option.
*/
@@ -64,6 +67,7 @@ public class WidgetsAndMore extends AbstractFloatingView implements Insettable,
private float mTranslationYRange;
private Launcher mLauncher;
+ private ItemInfo mOriginalItemInfo;
private ObjectAnimator mOpenCloseAnimator;
private Interpolator mFastOutSlowInInterpolator;
private VerticalPullDetector.ScrollInterpolator mScrollInterpolator;
@@ -95,9 +99,25 @@ public class WidgetsAndMore extends AbstractFloatingView implements Insettable,
mTranslationYRange = mTranslationYClosed - mTranslationYOpen;
}
- public void populateAndShow(ItemInfo itemInfo, List<WidgetItem> widgets) {
- ((TextView) findViewById(R.id.title)).setText(itemInfo.title);
+ public void populateAndShow(ItemInfo itemInfo) {
+ mOriginalItemInfo = itemInfo;
+ ((TextView) findViewById(R.id.title)).setText(mOriginalItemInfo.title);
+
+ onWidgetsBound();
+
+ mWasNavBarLight = (mLauncher.getWindow().getDecorView().getSystemUiVisibility()
+ & View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR) != 0;
+ mLauncher.getDragLayer().addView(this);
+ measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+ setTranslationY(mTranslationYClosed);
+ mIsOpen = false;
+ open(true);
+ }
+ @Override
+ protected void onWidgetsBound() {
+ List<WidgetItem> widgets = mLauncher.getWidgetsForPackageUser(new PackageUserKey(
+ mOriginalItemInfo.getTargetComponent().getPackageName(), mOriginalItemInfo.user));
List<WidgetItem> shortcuts = new ArrayList<>();
// Transfer configurable widgets to shortcuts
Iterator<WidgetItem> widgetsIter = widgets.iterator();
@@ -116,6 +136,9 @@ public class WidgetsAndMore extends AbstractFloatingView implements Insettable,
ViewGroup shortcutRow = (ViewGroup) findViewById(R.id.shortcuts);
ViewGroup shortcutCells = (ViewGroup) shortcutRow.findViewById(R.id.widgets_cell_list);
+ widgetCells.removeAllViews();
+ shortcutCells.removeAllViews();
+
for (int i = 0; i < widgets.size(); i++) {
addItemCell(widgetCells);
if (i < widgets.size() - 1) {
@@ -152,14 +175,6 @@ public class WidgetsAndMore extends AbstractFloatingView implements Insettable,
} else {
removeView(findViewById(R.id.shortcuts_header));
}
-
- mWasNavBarLight = (mLauncher.getWindow().getDecorView().getSystemUiVisibility()
- & View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR) != 0;
- mLauncher.getDragLayer().addView(this);
- measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
- setTranslationY(mTranslationYClosed);
- mIsOpen = false;
- open(true);
}
private void addDivider(ViewGroup parent) {