summaryrefslogtreecommitdiff
path: root/src_shortcuts_overrides
diff options
context:
space:
mode:
authorSteven Ng <stevenckng@google.com>2021-02-08 17:18:25 +0000
committerSteven Ng <stevenckng@google.com>2021-02-10 21:23:40 +0000
commit2f5648a9117c8e19a5785ffb2eff26373fb3c24c (patch)
tree12cf29ddc5327ab2fb6c4fdb5a8c7283fe2e47ba /src_shortcuts_overrides
parent823c5f8bf66d0d66f6e11fae53c720a0977b8005 (diff)
downloadLauncher3-2f5648a9117c8e19a5785ffb2eff26373fb3c24c.tar.gz
Refactoring before adding a new view type in the WidgetsListAdapter
Changes made: 1. Model: added an abstract class for storing common information for entries shown in the full page widgets picker. 2. Introduced a ViewHolderBinder interface to split the logic of binding data to ViewHolder into separate classes. 3. Move the view holder binding of WidgetsListRow from WidgetListAdapter to its new class. 4. Move some widgets picker classes into a new picker package. Test: Auto: Run WidgetsListAdapterTest, WidgetsListRowEntryTest and WidgetsListRowViewHolderBinderTest. Manual: open the all apps widgets tray and navigate the list. Bug: 179797520 Change-Id: Iab29557842bb79156cad84d00a4c5d0db0c5aa06
Diffstat (limited to 'src_shortcuts_overrides')
-rw-r--r--src_shortcuts_overrides/com/android/launcher3/model/LoaderResults.java6
-rw-r--r--src_shortcuts_overrides/com/android/launcher3/model/WidgetsModel.java31
2 files changed, 18 insertions, 19 deletions
diff --git a/src_shortcuts_overrides/com/android/launcher3/model/LoaderResults.java b/src_shortcuts_overrides/com/android/launcher3/model/LoaderResults.java
index 269af7bcc5..73b1601c34 100644
--- a/src_shortcuts_overrides/com/android/launcher3/model/LoaderResults.java
+++ b/src_shortcuts_overrides/com/android/launcher3/model/LoaderResults.java
@@ -21,10 +21,10 @@ import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.model.BgDataModel.Callbacks;
import com.android.launcher3.util.ComponentKey;
-import com.android.launcher3.widget.WidgetListRowEntry;
+import com.android.launcher3.widget.model.WidgetsListBaseEntry;
-import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
/**
* Helper class to handle results of {@link com.android.launcher3.model.LoaderTask}.
@@ -47,7 +47,7 @@ public class LoaderResults extends BaseLoaderResults {
@Override
public void bindWidgets() {
- final ArrayList<WidgetListRowEntry> widgets =
+ final List<WidgetsListBaseEntry> widgets =
mBgDataModel.widgetsModel.getWidgetsList(mApp.getContext());
executeCallbacksTask(c -> c.bindAllWidgets(widgets), mUiExecutor);
}
diff --git a/src_shortcuts_overrides/com/android/launcher3/model/WidgetsModel.java b/src_shortcuts_overrides/com/android/launcher3/model/WidgetsModel.java
index b4e45f835a..f27922b757 100644
--- a/src_shortcuts_overrides/com/android/launcher3/model/WidgetsModel.java
+++ b/src_shortcuts_overrides/com/android/launcher3/model/WidgetsModel.java
@@ -28,12 +28,12 @@ import com.android.launcher3.model.data.PackageItemInfo;
import com.android.launcher3.pm.ShortcutConfigActivityInfo;
import com.android.launcher3.util.PackageUserKey;
import com.android.launcher3.util.Preconditions;
-import com.android.launcher3.widget.WidgetItemComparator;
-import com.android.launcher3.widget.WidgetListRowEntry;
import com.android.launcher3.widget.WidgetManagerHelper;
+import com.android.launcher3.widget.model.WidgetsListBaseEntry;
+import com.android.launcher3.widget.model.WidgetsListContentEntry;
+import com.android.launcher3.widget.picker.WidgetsDiffReporter;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -60,24 +60,23 @@ public class WidgetsModel {
private final Map<PackageItemInfo, List<WidgetItem>> mWidgetsList = new HashMap<>();
/**
- * Returns a list of {@link WidgetListRowEntry}. All {@link WidgetItem} in a single row
- * are sorted (based on label and user), but the overall list of {@link WidgetListRowEntry}s
- * is not sorted. This list is sorted at the UI when using
- * {@link com.android.launcher3.widget.WidgetsDiffReporter}
+ * Returns a list of {@link WidgetsListBaseEntry}. All {@link WidgetItem} in a single row
+ * are sorted (based on label and user), but the overall list of
+ * {@link WidgetsListBaseEntry}s is not sorted. This list is sorted at the UI when using
+ * {@link WidgetsDiffReporter}
*
- * @see com.android.launcher3.widget.WidgetsListAdapter#setWidgets(ArrayList)
+ * @see com.android.launcher3.widget.picker.WidgetsListAdapter#setWidgets(List)
*/
- public synchronized ArrayList<WidgetListRowEntry> getWidgetsList(Context context) {
- ArrayList<WidgetListRowEntry> result = new ArrayList<>();
+ public synchronized ArrayList<WidgetsListBaseEntry> getWidgetsList(Context context) {
+ ArrayList<WidgetsListBaseEntry> result = new ArrayList<>();
AlphabeticIndexCompat indexer = new AlphabeticIndexCompat(context);
- WidgetItemComparator widgetComparator = new WidgetItemComparator();
for (Map.Entry<PackageItemInfo, List<WidgetItem>> entry : mWidgetsList.entrySet()) {
- WidgetListRowEntry row = new WidgetListRowEntry(
- entry.getKey(), new ArrayList<>(entry.getValue()));
- row.titleSectionName = (row.pkgItem.title == null) ? "" :
- indexer.computeSectionName(row.pkgItem.title);
- Collections.sort(row.widgets, widgetComparator);
+ PackageItemInfo pkgItem = entry.getKey();
+ String sectionName = (pkgItem.title == null) ? "" :
+ indexer.computeSectionName(pkgItem.title);
+ WidgetsListContentEntry row =
+ new WidgetsListContentEntry(pkgItem, sectionName, entry.getValue());
result.add(row);
}
return result;