mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-04 09:56:49 +00:00
Enable swipe down to open noti shade from landscape Bug: 137137090 Bug: 137954767 Bug: 134181439 Change-Id: I47b4d17c9ae0586565fce101eb478e33ed8f7e3d
87 lines
2.7 KiB
Java
87 lines
2.7 KiB
Java
package com.android.launcher3.logging;
|
|
|
|
import static com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType.DEFAULT_CONTAINERTYPE;
|
|
|
|
import android.view.View;
|
|
import android.view.ViewParent;
|
|
|
|
import com.android.launcher3.ItemInfo;
|
|
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
|
|
import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
|
|
public class StatsLogUtils {
|
|
|
|
// Defined in android.stats.launcher.nano
|
|
// As they cannot be linked in this file, defining again.
|
|
public final static int LAUNCHER_STATE_BACKGROUND = 0;
|
|
public final static int LAUNCHER_STATE_HOME = 1;
|
|
public final static int LAUNCHER_STATE_OVERVIEW = 2;
|
|
public final static int LAUNCHER_STATE_ALLAPPS = 3;
|
|
|
|
private final static int MAXIMUM_VIEW_HIERARCHY_LEVEL = 5;
|
|
|
|
public interface LogStateProvider {
|
|
int getCurrentState();
|
|
}
|
|
|
|
/**
|
|
* Implemented by containers to provide a container source for a given child.
|
|
*
|
|
* Currently,
|
|
*/
|
|
public interface LogContainerProvider {
|
|
|
|
/**
|
|
* Copies data from the source to the destination proto.
|
|
*
|
|
* @param v source of the data
|
|
* @param info source of the data
|
|
* @param target dest of the data
|
|
* @param targetParent dest of the data
|
|
*/
|
|
void fillInLogContainerData(View v, ItemInfo info, Target target, Target targetParent);
|
|
}
|
|
|
|
/**
|
|
* 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;
|
|
}
|
|
|
|
public static int getContainerTypeFromState(int state) {
|
|
int containerType = DEFAULT_CONTAINERTYPE;
|
|
switch (state) {
|
|
case StatsLogUtils.LAUNCHER_STATE_ALLAPPS:
|
|
containerType = ContainerType.ALLAPPS;
|
|
break;
|
|
case StatsLogUtils.LAUNCHER_STATE_HOME:
|
|
containerType = ContainerType.WORKSPACE;
|
|
break;
|
|
case StatsLogUtils.LAUNCHER_STATE_OVERVIEW:
|
|
containerType = ContainerType.OVERVIEW;
|
|
break;
|
|
}
|
|
return containerType;
|
|
}
|
|
}
|