801f81fba5
- ONRESUME / ONSTOP - HOME_GESTURE - OVERVIEW_GESTURE - QUICKSWITCH - SWIPELEFT/SWIPERIGHT Bug: 156875719 Bug: 148822714 Bug: 137777105 Debug log: go/launcher-log-parity Change-Id: I64a0deab4996b5be36320fbe0339f320891c53e0
50 lines
1.4 KiB
Java
50 lines
1.4 KiB
Java
package com.android.launcher3.logging;
|
|
|
|
import android.view.View;
|
|
import android.view.ViewParent;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
import com.android.launcher3.model.data.ItemInfo;
|
|
import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
public class StatsLogUtils {
|
|
private final static int MAXIMUM_VIEW_HIERARCHY_LEVEL = 5;
|
|
|
|
/**
|
|
* Implemented by containers to provide a container source for a given child.
|
|
*/
|
|
public interface LogContainerProvider {
|
|
|
|
/**
|
|
* Populates parent container targets for an item
|
|
*/
|
|
void fillInLogContainerData(ItemInfo childInfo, Target child, ArrayList<Target> parents);
|
|
}
|
|
|
|
/**
|
|
* Recursively finds the parent of the given child which implements IconLogInfoProvider
|
|
*/
|
|
public static LogContainerProvider getLaunchProviderRecursive(@Nullable View v) {
|
|
ViewParent parent;
|
|
if (v != null) {
|
|
parent = v.getParent();
|
|
} else {
|
|
return null;
|
|
}
|
|
|
|
// Optimization to only check up to 5 parents.
|
|
int count = MAXIMUM_VIEW_HIERARCHY_LEVEL;
|
|
while (parent != null && count-- > 0) {
|
|
if (parent instanceof LogContainerProvider) {
|
|
return (LogContainerProvider) parent;
|
|
} else {
|
|
parent = parent.getParent();
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
}
|