public interface Callbacks {
//如果Launcher在加载完成之前被强制暂停,那么需要通过这个回调方法通知
//launcher,在它再次显示的时候重新执行加载过程
public boolean setLoadOnResume();
//获取当前用户所在的桌面页索引
public int getCurrentWorkspaceScreen();
//启动桌面组件绑定
public void startBinding();
/**
* 批量绑定桌面组件
* @param shortcuts 需要绑定的快捷方式列表
* @param start 列表的开始位置
* @param end 列表的结束位置
* @param forceAnimateIcons 是否使用动画
*/
public void bindItems(ArrayList<ItemInfo> shortcuts, int start, int end,
boolean forceAnimateIcons);
/**
* 批量绑定桌面页
* @param orderedScreenIds 序列化后的桌面页列表
*/
public void bindScreens(ArrayList<Long> orderedScreenIds);
//同上
public void bindAddScreens(ArrayList<Long> orderedScreenIds);
/**
* 批量绑定文件夹
* @param folders 文件夹映射列表
*/
public void bindFolders(LongArrayMap<FolderInfo> folders);
//绑定任务完成
public void finishBindingItems();
/**
* 往桌面上绑定小部件
* @param info 需要绑定到桌面上的小部件信息
*/
public void bindAppWidget(LauncherAppWidgetInfo info);
/**
* 绑定应用程序列表界面的应用程序信息
* @param apps 需要绑定到应用程序列表中的应用程序列表
*/
public void bindAllApplications(ArrayList<AppInfo> apps);
/**
* 批量添加组件
* @param newScreens 添加的桌面页列表
* @param addNotAnimated 无需动画添加组件
* @param addAnimated 动画方式添加组件
* @param addedApps 添加所有应用程序菜单
*/
public void bindAppsAdded(ArrayList<Long> newScreens,
ArrayList<ItemInfo> addNotAnimated,
ArrayList<ItemInfo> addAnimated,
ArrayList<AppInfo> addedApps);
/**
* 批量更新应用程序相关的快捷方式或者入口
* @param apps 已经更新的应用程序信息
*/
public void bindAppsUpdated(ArrayList<AppInfo> apps);
/**
* 从桌面移除一些组件,当应用程序被移除或者禁用的时候调用
* @param packageNames 以包名指定的应用程序信息列表
* @param appInfos 以应用程序信息指定的应用程序信息列表
* @param user 当前用户信息
* @param reason
*/
public void bindComponentsRemoved(ArrayList<String> packageNames,
ArrayList<AppInfo> appInfos, UserHandleCompat user);
public void bindAllPackages(WidgetsModel model);
//全局搜索或者搜索属性更新
public void bindSearchProviderChanged();
/**
*
* @param rank 输入范围
* @return 是否为应用程序菜单
*/
public boolean isAllAppsButtonRank(int rank);
/**
* 指示正在绑定的页面
* @param page 桌面页序号
*/
public void onPageBoundSynchronously(int page);
//输出当前Launcher信息到本地文件中
public void dumpLogsToLocalData();
}