返回Hotseat自动补全的控制类
Hotseat自动补全的控制类 启用/禁用Hotseat预测图标长按edu进行测试
获取控制从启动器管理打开和关闭应用程序的转换的QuickstepTransitionManager类
返回通过SharedPreferences存储和检索入职相关数据的类
打开AllApps页面
监听点击
支持的快捷方式
获取快捷方式
launcher状态改变或者launcher activity生命周期为stops/resumes时RecentsView的变动
if (state == NORMAL && !inTransition) {
((RecentsView) getOverviewPanel()).setSwipeDownShouldLaunchApp(false);
}
当系统删除应用程序/快捷方式图标时调用HotseatPredictionController的方法。这用于在等待AppAPredction服务发送新一批预测时修剪可见的过时预测。
在状态转换结束时调用
launcher onCreate方法中调用,初始化
return factory.newInstance(this,
appWidgetId -> getWorkspace().removeWidget(appWidgetId),
new QuickstepInteractionHandler(this));
在转换到主页后,如果高分辨率缩略图加载程序没有作为quickstep的一部分启用,请启用它,以便下次我们输入概览时可以加载高分辨率缩略图
处理手势导航合同
移除snapshot,因为内容视图可能有明显的更改。
结束 RecentsView动画
@Override
protected void onScreenOnChanged(boolean isOn) {
super.onScreenOnChanged(isOn);
if (!isOn) {
RecentsView recentsView = getOverviewPanel();
recentsView.finishRecentsAnimation(true /* toRecents */, null);
}
}
调用onTaskbarInAppDisplayProgressUpdate
@Override
public void onAllAppsTransition(float progress) {
super.onAllAppsTransition(progress);
onTaskbarInAppDisplayProgressUpdate(progress, ALL_APPS_PAGE_PROGRESS_INDEX);
}
调用onTaskbarInAppDisplayProgressUpdate
@Override
public void onWidgetsTransition(float progress) {
super.onWidgetsTransition(progress);
onTaskbarInAppDisplayProgressUpdate(progress, WIDGETS_PAGE_PROGRESS_INDEX);
if (mEnableWidgetDepth) {
getDepthController().widgetDepth.setValue(Utilities.mapToRange(
progress, 0f, 1f, 0f, getDeviceProfile().bottomSheetDepth, EMPHASIZED));
}
}
监听返回键
在转换到应该使用应用内布局的启动器状态期间为任务栏元素制作动画。
Animates Taskbar elements during a transition to a Launcher state that should use in-app
* 0 => use home layout
* 1 => use in-app layout
删除任何活动的ProxyActivityStarter任务,并将RESULT_CANCELD发送到Launcher。
ProxyActivityStarter启动时带有清除任务以重置任务,然后删除任务本身。
简化绑定TouchInteractionService的实用程序类
private void initUnfoldTransitionProgressProvider() {
final UnfoldTransitionConfig config = new ResourceUnfoldTransitionConfig();
if (config.isEnabled()) {
if (RECEIVE_UNFOLD_EVENTS_FROM_SYSUI.get()) {
// Receives animation progress from sysui process.
initRemotelyCalculatedUnfoldAnimation(config);
} else {
//注册 hinge angle监听器并计算此过程中的动画进度
initLocallyCalculatedUnfoldAnimation(config);
}
}
}
在splitscreen中启动给定的{@link GroupTask} 如果缺少第二个拆分任务,则正常启动第一个任务
在DragLayer.java中调用,很明显是针対全屏模式以及不同模式下的导航键的滑动控制类的数组
@Override
public TouchController[] createTouchControllers() {
NavigationMode mode = DisplayController.getNavigationMode(this);
ArrayList<TouchController> list = new ArrayList<>();
list.add(getDragController());
switch (mode) {
case NO_BUTTON:
list.add(new NoButtonQuickSwitchTouchController(this));
list.add(new NavBarToHomeTouchController(this));
list.add(new NoButtonNavbarToOverviewTouchController(this));
break;
case TWO_BUTTONS:
list.add(new TwoButtonNavbarTouchController(this));
list.add(getDeviceProfile().isVerticalBarLayout()
? new TransposedQuickSwitchTouchController(this)
: new QuickSwitchTouchController(this));
list.add(new PortraitStatesTouchController(this));
break;
case THREE_BUTTONS:
default:
list.add(new PortraitStatesTouchController(this));
}
if (!getDeviceProfile().isMultiWindowMode) {
list.add(new StatusBarTouchController(this));
}
list.add(new LauncherTaskViewController(this));
return list.toArray(new TouchController[list.size()]);
}