Refactor logging to capture Target hierarchy

Instead of creating a fixed number of targets, we now pass an ArrayList
of targets to. Any class implementing
LogContainerProviders#fillInLogContainerData can setup it's own target
and add it to the ArrayList, It can also pass the ArrayList to other
LogContainerProvider to capture full Target hierarchy.

Bug: 147305863
Change-Id: I0063c692120fb9e1cff2d8902c5da972d0623418
This commit is contained in:
Samuel Fufa
2020-02-27 16:59:19 -08:00
parent 9099dfcfb7
commit a579ddc9c8
18 changed files with 241 additions and 197 deletions

View File

@@ -41,6 +41,8 @@ import com.android.launcher3.util.SystemUiController;
import com.android.launcher3.util.Themes;
import com.android.launcher3.views.AbstractSlideInView;
import java.util.ArrayList;
/**
* Base class for various widgets popup
*/
@@ -144,9 +146,11 @@ abstract class BaseWidgetSheet extends AbstractSlideInView
}
@Override
public void fillInLogContainerData(View v, ItemInfo info, Target target, Target targetParent) {
targetParent.containerType = ContainerType.WIDGETS;
targetParent.cardinality = getElementsRowCount();
public void fillInLogContainerData(ItemInfo childInfo, Target child,
ArrayList<Target> parents) {
Target target = newContainerTarget(ContainerType.WIDGETS);
target.cardinality = getElementsRowCount();
parents.add(target);
}
@Override